回到简体

This commit is contained in:
chai2010
2016-02-15 11:06:34 +08:00
parent 9e878f9944
commit 2b37b23285
177 changed files with 2354 additions and 2354 deletions

View File

@@ -1,9 +1,9 @@
## 7.15. 一些建
## 7.15. 一些建
當設計一個新的包新的Go程序員總是通過創建一接口的集合始和面定義滿足它的具體類型。這種方式的果就是有很多的接口,它中的每一個僅隻有一個實現。不要再這麽做了。這種接口是不必要的抽象;它也有一個運行時損耗。你可以使用導出機製(§6.6)來限製一個類型的方法或一個結構體的字段是否在包外可。接口隻有當有兩個或兩個以上的具體類型必以相同的方式進行處理時才需要。
当设计一个新的包新的Go程序员总是通过创建一接口的集合始和面定义满足它的具体类型。这种方式的果就是有很多的接口,它中的每一个仅只有一个实现。不要再这么做了。这种接口是不必要的抽象;它也有一个运行时损耗。你可以使用导出机制(§6.6)来限制一个类型的方法或一个结构体的字段是否在包外可。接口只有当有两个或两个以上的具体类型必以相同的方式进行处理时才需要。
當一個接口被一個單一的具體類型實現時有一例外,就是由它的依賴,這個具體類型不能和這個接口存在在一相同的包中。這種情況下,一接口是解耦這兩個包的一好好方式。
当一个接口被一个单一的具体类型实现时有一例外,就是由它的依赖,这个具体类型不能和这个接口存在在一相同的包中。这种情况下,一接口是解耦这两个包的一好好方式。
在Go言中隻有當兩個或更多的類型實現一個接口才使用接口,它必定會從任意特定的實現細節中抽象出來。結果就是有更少和更簡單方法(常和io.Writer或 fmt.Stringer一樣隻有一)的更小的接口。新的型出現時,小的接口更容易滿足。對於接口設計的一好的標準就是 ask only for what you need隻考慮你需要的西)
在Go言中只有当两个或更多的类型实现一个接口才使用接口,它必定会从任意特定的实现细节中抽象出来。结果就是有更少和更简单方法(常和io.Writer或 fmt.Stringer一样只有一)的更小的接口。新的型出现时,小的接口更容易足。对于接口设计的一好的标准就是 ask only for what you need只考虑你需要的西)
完成了methods和接口的學習過程。Go言良好的支持面向對象風格的程,但不是説你僅僅隻能使用它。不是任何事物都需要被做成一個對象;立的函有它自己的用,未封裝的數據類型也是這樣。同時觀察到這兩個,在本的前五章的例子中沒有調用超過兩打方法像input.Scan之相反的是普遍的函數調用如fmt.Printf。
完成了methods和接口的学习过程。Go言良好的支持面向对象风格的程,但不是说你仅仅只能使用它。不是任何事物都需要被做成一个对象;立的函有它自己的用,未封装的数据类型也是这样。同时观察到这两个,在本的前五章的例子中没有调用超过两打方法像input.Scan之相反的是普遍的函数调用如fmt.Printf。