真实世界的 Go 设计模式 - 单例模式 和 惰性初始化模式

鸟窝 at 
在面向对象编程语言中,单例模式(Singleton pattern)确保一个类只有一个实例,并提供对该实例的全局访问。那么 Go 语言中,单例模式确认一个类型只有一个实例,并提供对改实例的全局访问,一般就是直接访问全局变量即可。比如 Go 标准库中的 os.Stdin、os.Stdout、os.Stderr 分别代表标准输入、标准输出和标准错误输出。它们是*os.File 类型的全局变量,可以在程序中直接使用:12345var ( Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") Stdout = NewFile(uintptr(sy……