共计 451 个字符,预计需要花费 2 分钟才能阅读完成。
singleton
单例模式是最简略的设计模式之一,也是业务中最罕用的设计模式之一。在 golang 中实现单例模式不要太简略,应用 sync.once
就轻松搞定。
通过 sync.once
能够实现 dbTest 构造体只被初始化一次。
type DBTest struct { | |
host string | |
user string | |
} | |
var ( | |
dbTest *DBTest | |
once sync.Once | |
) | |
func NewDBTest(host string, user string) *DBTest {once.Do(func() {fmt.Println("once") | |
dbTest = &DBTest{host: host, user: user} | |
}) | |
fmt.Println("return") | |
return dbTest | |
} | |
func main() {NewDBTest("test", "user") | |
NewDBTest("test", "user") | |
NewDBTest("test", "user") | |
} |
输入:
once | |
return | |
return | |
return |
本文由 mdnice 多平台公布
正文完