ToB企服应用市场:ToB评测及商务社交产业平台

标题: golang 设计模式之一 singleton 单例模式 [打印本页]

作者: 杀鸡焉用牛刀    时间: 9 小时前
标题: golang 设计模式之一 singleton 单例模式
singleton

  单例模式是最简朴的设计模式之一,也是业务中最常用的设计模式之一。在golang中实现单例模式不要太简朴,使用sync.once就轻松搞定。
  通过sync.once可以实现dbTest结构体只被初始化一次。
  1. 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 />
复制代码
输出:
  1. once<br />return<br />return<br />return<br />
复制代码
   
    本文由 mdnice 多平台发布

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4