+ 添加ch10.2

This commit is contained in:
leisore
2015-06-10 21:03:01 +08:00
parent fe5ea4c8da
commit 4595a991b2

33
eBook/10.2.md Normal file
View File

@@ -0,0 +1,33 @@
# 10.2 使用工厂方法创建结构体实例
## 10.2.1 结构体工厂
Go语言不支持像面向对象编程语言中那样的构造子但是可以很容易的使用Go实现“类构造子工厂“函数。为了方便常常会为一个类型定义一个工厂按照约定工厂的名字以new或New开头。假设定义了如下的File结构体类型
```go
type File struct {
fd int // 文件描述符
name string // 文件名
}
```
下面是这个结构体类型对应的工厂函数,它返回一个指向结构体实例的指针:
```go
func NewFile(fd int, name string) *File {
if fd < 0 {
return nil
}
return &File(id, name)
}
```
**练习**
*练习 10.1*
## 链接
- [目录](directory.md)
- 上一节:[10 结构struct与方法method](10.0.md)
- 下一节:[10.2 使用工厂方法创建结构体实例](10.2.md)