单例模式

单例模式

使用标准库

package singleton

var (
    once sync.Once
    singleton *Singleton
)

type Singleton struct{}

func NewSingleton() *Singleton{
    once.Do(func(){
        singleton = &Singleton{}
    })
    return singleton
}

不使用标准库

package singleton

var singleton *Singleton


type Singleton struct{}

func NewSingleton() *Singleton{
    if singleton == nil {
        singleton = *Singleton{}
    }
    return singleton
}
posted @ 2022-09-14 07:43  理科土拨鼠  阅读(14)  评论(0)    收藏  举报