單例模式
定義
確保一個類只有一個實例,並提供一個全局訪問點。
角色
1.全局訪問點即全局訪問函數。
2.單例結構體。
例子
var m *single
var once sync.Once
//單例結構體
type single struct{
Name string
}
//全局訪問此結構體實例的函數
func GetInstance()*single{
once.Do(func() {
m = &single{}
})
return m
總結
單例就是全局一個進程內只能產生一個結構體的實例。注意點是單例產生的實例,訪問實例裏面是數據是線程不安全的。