From 0d5fb59871ddfc8a9d616ba796926eec6e95ebea Mon Sep 17 00:00:00 2001 From: leisore Date: Wed, 12 Aug 2015 11:41:01 +0800 Subject: [PATCH] 10.6 OK --- eBook/10.6.md | 141 +++++++++++++++++++++++++++++++- eBook/images/10.6.9_fig10.4.jpg | Bin 0 -> 43468 bytes 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 eBook/images/10.6.9_fig10.4.jpg diff --git a/eBook/10.6.md b/eBook/10.6.md index 74bdd6d..813f7cd 100644 --- a/eBook/10.6.md +++ b/eBook/10.6.md @@ -526,7 +526,146 @@ func (c *Customer) String() string { 因此一个好的策略是创建一些小的、可复用的类型作为一个工具箱,用于组成域类型。 -** 10.6.7 多根继承 +** 10.6.7 多重继承 + +多重继承指的是类型获得多个父类型行为的能力,它在传统的面向对象语言中通常是不被实现的(C++和Python例外)。因为在类继承层次中,多重继承会给编译器引入额外的复杂度。但是Go语言中,通过在类型中嵌入所有必要的父类型,可以很简单的实现多重继承。 + +作为一个例子,假设有一个类型CameraPhone,通过它可以Call(),也可以TakeAPicture(),但是第一个方法属于类型Phone,第二个方法属于类型Camera。 + +只要嵌入这两个类型就可以解个问题,如下所示: +```go +package main + +import ( + "fmt" +) + +type Camera struct{} + +func (c *Camera) TakeAPicture() string { + return "Click" +} + +type Phone struct{} + +func (p *Phone) Call() string { + return "Ring Ring" +} + +type CameraPhone struct { + Camera + Phone +} + +func main() { + cp := new(CameraPhone) + fmt.Println("Our new CameraPhone exhibits multiple behaviors...") + fmt.Println("It exhibits behavior of a Camera: ", cp.TakeAPicture()) + fmt.Println("It works like a Phone too: ", cp.Call()) +} +``` + +输出: + + Our new CameraPhone exhibits multiple behaviors... + It exhibits behavior of a Camera: Click + It works like a Phone too: Ring Ring + +* 练习 10.9:* point_methods.go: + +从point.go开始(10.1的联系):使用方法来实现Abs()和Scale()函数,Point作为方法的接收者类型。也为Point3和Polar实现Abs()方法。做point.go中同样的事情,只是这次通过方法。 + +* 练习 10.10:* inherit_methods.go: + +定义一个结构体类型Base,它包含一个字段id,方法Id()返回id,方法SetId()修改id。结构体类型Person包含Base,及FirstName和LastName字段。结构体类型Employee包含一个Person和salary字段。 + +创建一个employee实例,然后显示它的id。 + +* 练习 10.11:* magic.go: + +首先预测一下下面程序的结果,然后动手实验下: + +```go +package main + +import ( + "fmt" +) + +type Base struct{} + +func (Base) Magic() { + fmt.Println("base magic") +} + +func (self Base) MoreMagic() { + self.Magic() + self.Magic() +} + +type Voodoo struct { + Base +} + +func (Voodoo) Magic() { + fmt.Println("voodoo magic") +} + +func main() { + v := new(Voodoo) + v.Magic() + v.MoreMagic() +} +``` + +** 10.6.8 通用方法和方法命名 + +在编程中一些基本操作会一遍又一遍的出现,比如打开(Open)、关闭(Close)、读(Read)、写(Write)、排序(Sort)等等,并且它们都有一个大致的意思:打开(Open)可以作用于一个文件、一个网络连接、一个数据库连接等等。具体的实现可能千差万别,但是基本的概念是一致的。在Go语言中,通过使用接口(参考 第11章),标准库广泛的应用了这些规则,在标准库中这些通用方法都有一致的名字,比如Open()、Read()、Write()等。想写规范的Go程序,就应该遵守这些约定,给方法合适的名字和签名,就像那些通用方法那样。这样做会使Go开发的软件更加具有一致性和可读性。比如:如果需要一个convert-to-string方法,应该命名为String(),而不是ToString()(参考10.7). + +** 10.6.9 和其他面向对象语言比较Go的类型和方法 + +在如C++、Java、C#和Ruby这样的面向对象语言中,方法在类的上下文中被定义和继承:在一个对象上调用方法时,运行时会检测类以及它的超类中是否有此方法的定义,如果没有会导致异常发生。 + +在Go中,这样的继承层次是完全没必要的:如果方法在此类型定义了,就可以调用它,和其他类型上是否存在这个方法没有关系。在这个意义上,Go具有更大的灵活性。 + +下面的模式就很好的说明了这个问题: + +![](images/10.6.9_fig10.4.jpg?raw=true) + +Go不需要一个显式的类定义,如同Java、C++、C#等那样,相反地,,“类”是通过提供一组作用于一个共同类型的方法集来隐式定义的。类型可以是结构体或者任何用户自定义类型。 + +比如:我们想定义自己的Integer类型,并添加一些类似转换成字符串的方法,在Go中可以如下定义: + +```go +type Integer int +func (i *Integer) String() string { + return strconv.Itoa(i) +} +``` + +在Java或C#中,这个方法需要和类Integer的定义放在一起,在Ruby中可以直接在基本类型int上定义这个方法。 + +*总结*: + +在Go中,类型就是类(数据和关联的方法)。Go不知道类似OO语言的类继承的概念。继承有两个好处:代码复用和多态。 + +在Go中,代码复用通过组合和委托实现,多态通过接口的使用来实现:有时这也叫*组件编程*。 + +许多开发者说相比于类继承,Go的接口提供了更强大、却更简单的多态行为。 + +*备注*: + +如果真的需要更多OO的能力,看一下goop包(Go Object-Oriented Programming),它来自与Scott Pakin[(https://github.com/losalamos/goop]: 它给Go提供了JavaScript风格的对象(基于原型的对象),并且支持多重继承和类型独立分派,通过它可以实现你喜欢的其他编程语言里的一些结构。 + +** 问题 10.1: +我们在某个类型的变量上使用点号调用一个方法:variable.method(),在使用Go以前,在哪儿碰到过OO的点号? + +** 问题 10.2: + +a) 假设定义: `type Integer int`,完成get()方法的方法体: `func (p Integer) get() int { ... }` +b) 定义: `func f(i int) {}; var v Integer` , 如何就v作为参数调用f? +c) 假设Integer定义为:`type Integer struct {n int}`,完成get()方法的方法体:`func (p Integer) get() int { ... }` +d) 对于新定义的Integer,和b)中同样的问题 ## 链接 - [目录](directory.md) diff --git a/eBook/images/10.6.9_fig10.4.jpg b/eBook/images/10.6.9_fig10.4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53142c9ddf9f2a943b7fbb7fde50c35cf785157e GIT binary patch literal 43468 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