意圖:保證乙個類僅有乙個例項,並提供乙個全域性訪問點
效果:
1 實現對唯一例項的受控訪問
2 是對全域性變數的一種改進。避免了儲存唯一例項的全域性變數汙染命名空間
3 不僅可以實現單例,還可以實現n例,即允許可變數目的例項,還可以實現單件登錄檔
**:
#include using namespace std;
class singleton
singleton(const singleton&);
public:
static singleton* getinstance()
static void freeinstance() };
singleton * singleton::minstance = null;
int main()
注1:可以將單件改造成單件註冊器,在字串名字和單件之間建立對映,當instance需要乙個單件時,它參考登錄檔,根據名字請求單件,思想和**都很簡單,**略
注2:注意多執行緒環境中需要使用雙重檢查鎖定機制來保證正確的單例,偽碼如下:
static singleton* getinstance()
return minstance;
}
實現二:
#include using namespace std;
class singleton
singleton(const singleton&);
public:
static singleton* getinstance() };
singleton singleton::minstance(1); //初始化
int main()
設計模式之建立型模式
設計模式被分成了三大型別 建立型 結構型和行為型。本文介紹一下建立型模式。建立型模式包括抽象工廠模式 建造者模式 工廠方法模式 原型模式和單例模式。好處 1 易於交換產品系列,由於具體工廠類,在乙個應用中只需要在初始化的時候出現一次,這就使得改變乙個應用的具體工廠變得非常容易,它只需要改變具體工廠即...
設計模式之建立型模式
設計模式 是指在軟體開發中,經過驗證的,用於在特定環境下 重複出現的 特定問題的解決方案。創 建型模式 抽象了物件例項化過程,用來幫助建立物件的例項。包括 簡單工廠模式 factory 工廠方法模式 factory method 抽象工廠模式 abstract factory 建造者模式 build...
設計模式之建立型模式
建立型模式主要關注物件的建立過程,將物件的建立過程進行封裝,使客戶端可以直接得到物件,而不用去關心如何建立物件。有五種建立型模式 1.單例模式 singleton 意圖 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。優點 2.工廠方法模式 factorymethod 意圖 1 定義乙個用於...