golang 设计模式之一 singleton 单例模式

打印 上一主题 下一主题

主题 893|帖子 893|积分 2679

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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表