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 多平台发布
文章介绍了如何在Golang中利用sync.once包来简单高效地实现单例模式,特别是对于DBTest结构体的初始化,确保只执行一次,常用于数据库连接等资源的管理。
1780

被折叠的 条评论
为什么被折叠?



