Files
the-way-to-go_ZH_CN/eBook/10.2.md
2015-06-10 21:03:01 +08:00

902 B
Raw Blame History

10.2 使用工厂方法创建结构体实例

10.2.1 结构体工厂

Go语言不支持像面向对象编程语言中那样的构造子但是可以很容易的使用Go实现“类构造子工厂“函数。为了方便常常会为一个类型定义一个工厂按照约定工厂的名字以new或New开头。假设定义了如下的File结构体类型

type File struct {
    fd      int     // 文件描述符
    name    string  // 文件名
}

下面是这个结构体类型对应的工厂函数,它返回一个指向结构体实例的指针:

func    NewFile(fd int, name string) *File {
    if fd < 0 {
        return nil
    }

    return &File(id, name)
}

练习

练习 10.1

链接