C 設計模式(一) 單例模式

2021-09-10 17:15:39 字數 875 閱讀 2664

1,單利模式:保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點,使得系統中只有唯一的乙個物件例項。

應用:常用於管理資源,如日誌,執行緒池

實現要點:

在類中,要構造乙個例項,就必須呼叫類的建構函式,並且為了保證全域性只有乙個例項。

需防止在外部呼叫類的建構函式而構造例項,需要將建構函式的訪問許可權標記為private。

同時組織拷貝建立物件賦值時的拷貝物件,因此也將他們宣告並許可權標記為private。

另外,需要提供乙個全域性訪問點,需要在類中定義乙個static函式,返回在類內部唯一構造的例項。

(普及一下static的用法:如果這個靜態函式出現在類裡,那麼它是乙個靜態成員函式,呼叫這個函式不會訪問或者修改任何物件(非static)資料成員,靜態

成員屬於類本身,在類載入的時候分配記憶體,可以通過類名直接訪問,非靜態成員屬於類的物件,所以只有在產生類的物件的時候,才會分配記憶體,然後通過類的物件(例項)去訪問)。

(如果它不出現在類中,那麼它是乙個普通的全域性靜態函式,限定在本原始碼檔案中使用,不能被原始碼檔案意外的**檔案呼叫。而普通的函式預設是extern的。好處:與其它檔案可以使用同名不會發生衝突)

code:

#include #include #include using namespace std;

class singleton

void print_test()

private:

singleton(){}

singleton(singleton const& singleton);

singleton& operator=(singleton const& singleton);

};int main()

C 設計模式(一) 單例模式

單例模式 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。主要解決 乙個全域性使用的類頻繁地建立與銷毀。何時使用 想控制例項數目,節省系統資源的時候。如何解決 判斷系統是否已存在單例,如果有則返回,沒有則建立。關鍵 建構函式是私有的。單例大約有兩種實現方法 懶漢與餓漢。懶漢 故名思義,不到萬...

C 設計模式 一 單例模式

c 單例模式也稱為單件模式 單子模式。使用單例模式,保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點,該例項被所有程式模組共享。有很多地方需要這樣的功能模組,如系統的日誌輸出等。單例模式有許多種實現方法,a.懶漢式 使用的時候才建立,多執行緒訪問的時候執行緒不安全 雙檢鎖 b.餓漢式 類檔案載...

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

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