ToB企服应用市场:ToB评测及商务社交产业平台
标题:
golang 设计模式之一 singleton 单例模式
[打印本页]
作者:
杀鸡焉用牛刀
时间:
9 小时前
标题:
golang 设计模式之一 singleton 单例模式
singleton
单例模式是最简朴的设计模式之一,也是业务中最常用的设计模式之一。在golang中实现单例模式不要太简朴,使用sync.once就轻松搞定。
通过sync.once可以实现dbTest结构体只被初始化一次。
type DBTest struct {<br /> host string<br /> user string<br />}<br /><br />var (<br /> dbTest *DBTest<br /> once sync.Once<br />)<br /><br />func NewDBTest(host string, user string) *DBTest {<br /> once.Do(func() {<br /> fmt.Println("once")<br /> dbTest = &DBTest{host: host, user: user}<br /> })<br /> fmt.Println("return")<br /> return dbTest<br />}<br /><br />func main() {<br /> NewDBTest("test", "user")<br /> NewDBTest("test", "user")<br /> NewDBTest("test", "user")<br />}<br />
复制代码
输出:
once<br />return<br />return<br />return<br />
复制代码
本文由 mdnice 多平台发布
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4