# 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)