美文网首页golang
[golang] 单例模式singleton,正确的打开方式

[golang] 单例模式singleton,正确的打开方式

作者: liuzoxan | 来源:发表于2019-08-01 19:44 被阅读0次

    单例模式是常用的设计模式,但在golang里和c++/java等实现的方式略有不同,非常干净利落!来,上代码:

    import "sync"
    
    var once sync.Once
    var awsMeta *MetaDb
    
    func DefaultAWSMetaDb() *MetaDb {
        once.Do(func() {
            awsMeta, _ = NewMetaDb(AWS, TestConsulAddress)
        })
        return awsMeta
    }
    
    int main() {
            meta1 := DefaultAWSMetaDb()
            meta2 := DefaultAWSMetaDb()
            meta3 := DefaultAWSMetaDb()
            // 上面的三个meta,使用同一个meta地址
    }
    

    once.Do()只会运行一次,是不是很棒!Have fun!

    相关文章

      网友评论

        本文标题:[golang] 单例模式singleton,正确的打开方式

        本文链接:https://www.haomeiwen.com/subject/hbocdctx.html