C 設計模式 單例設計模式

2021-08-27 03:33:12 字數 718 閱讀 8414

對於單例設計模式做乙個簡單的記錄。

使用場景:如果乙個類在整個程式的執行環境中,有且僅需乙個例項,可以使用單例設計模式。

singleton模式主要設計思路就是用private 或 protected 修飾建構函式,並在全域性維護唯一的例項,通過介面向外部提供這個例項。

下面是簡單的**實現。

// singleton.h

class singleton

;singleton* singleton::_instance = nullptr;

singleton::singleton()

singleton* single::instance()

return _instance;

}

上面的**簡單的實現了單例設計模式,但是卻不是執行緒安全的,多個執行緒同時執行到 

if(_instance == nullptr)
會建立多個singleton物件。

解決的方法很多,比如加鎖,這裡提供乙個最簡單的方法:就是著名的餓漢式,用空間換安全。

class singleton

singleton* singleton::_instance = new singleton();

singleton* singleton::instance()

設計模式 C 設計模式 單例模式

設計模式 物件導向設計七大原則 設計模式 設計模式概念和分類 設計模式 c 設計模式 單例模式 設計模式 c 設計模式 工廠方法模式 設計模式 c 設計模式 抽象工廠模式 設計模式 c 設計模式 建造者模式 設計模式 c 設計模式 原型模式 作者自用的泛型單例模組 單例模式 singleton pa...

C 設計模式 單例設計模式

效果 實現步驟 將建構函式私有化。在類中定義乙個靜態的指標變數 一般設為私有 並在類外初始化為空 定義乙個返回值為類指標的靜態成員函式,如果2中的指標物件為空,則初始化物件,以後再有物件呼叫該靜態成員函式的時候,不再初始化物件,而是直接返回物件,保證類在記憶體中只有乙個例項。解釋 include u...

C 設計模式 (單例模式)

單例模式 顧名思義,只有乙個物件例項,即保證乙個類只有乙個物件可以使用。作用類似於乙個全域性變數,可以任意呼叫,但是比全域性變數更容易管理,使用。單例模式也有很多種實現方式 第一種實現方法 h檔案 class csock test public casyncsocket cpp檔案 csock te...