设计模式--单例(Singleton)模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式--单例(Singleton)模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
模式意圖
保證一個類只用一個實例,并且提供一個全局訪問點
類圖
應(yīng)用場景
1.需要更嚴(yán)格地控制全局變量時,使用單例模式;
2.重量級的對象如線程池對象,數(shù)據(jù)庫連接池對象,不需要多個實例的對象如工具類等。
工程目錄
Signle.go
package Singleimport "sync"type Single struct {data int }var singleton *Single var once sync.Oncefunc GetInterface() *Single{once.Do(func (){singleton = &Single{data: 100}}) //單例//singleton = &Single{data: 100} //非單例return singleton }Signle_test.go
package Singleimport ("fmt""testing" )func TestSignle (t *testing.T) {s1 := GetInterface()s2 := GetInterface()if s1 == s2 {fmt.Println("單例")} else {fmt.Println("非單例")} }總結(jié)
以上是生活随笔為你收集整理的设计模式--单例(Singleton)模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式--抽象工厂(Abstract
- 下一篇: 设计模式--建造者(Builder)模式