单例模式
单例模式是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一类只有一个实例而且该实例易于外界访问,从而达到使用目的,同时还能方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
单例定义
var (
once sync.Once
instance *Singleton
)
type Singleton struct {
param string
}
func GetInstance() *Singleton {
once.Do(func() {
instance = &Singleton{}
})
return instance
}
//设置参数
func (this *Singleton) SetParam(param string) {
this.param=param
}
//获取参数
func (this Singleton) GetParam() string {
return this.param
}
使用
GetInstance().SetParam("1")
fmt.Println(GetInstance().GetParam())
GetInstance().SetParam("2")
fmt.Println(GetInstance().GetParam())