設計模式 建立型模式之 Singleton 單例

2021-06-01 21:17:05 字數 949 閱讀 1642

意圖:保證乙個類僅有乙個例項,並提供乙個全域性訪問點

效果:

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 定義乙個用於...