c 設計模式學習(1) 單例模式

2021-07-08 16:16:17 字數 1184 閱讀 4418

1)開放封閉原則:對擴充套件**開放,對修改**封閉。

2)依賴倒置原則:依賴於抽象介面,不依賴與具體類。針對介面(抽象類)程式設計。

3)迪公尺特法則:乙個物件應當盡可能少的了解另乙個物件,從而降低各個物件之間的耦合性。

4)優先使用組合而不是繼承原則。如果使用繼承,那麼父類的任何變化都會影響到子類行為;使用組合關係可以減低這種依賴關係。

單例模式是乙個建立型模式,保證乙個類只生成乙個例項物件,也就是說在整個程式空間中,只有乙個例項物件,同時提供對該例項加以訪問的全域性方法。
舉例:在多執行緒環境下,初始化乙個socket資源,共享同一資源或操作同一物件。

大規模系統中,為了效能考慮,節省物件的建立時間。

共享資源

1)建構函式私有化:這樣就不能單純的new出物件

2)提供乙個全域性的訪問方法:只可以通過該方法來獲取單例物件

4)私有化賦值建構函式,私有化複製操作符

class singleton

unlock();

}return m_instance;

}private:

singleton()

~singleton()

singleton & operator=(singleton & si);

singleton(singleton &);

private:

static singleton * m_instance;

}

class singleton

private:

singleton()

singleton & operator=(singleton & si);

singleton(singleton &);

private:

static singleton * m_instance;

}singleton * singleton::m_instance = new singleton;

//不管你需要不需要,在程式執行之前就把物件建立出來,這樣也不要執行緒同步了。

1、為什麼需要單例模式

2、懶漢單例模式的執行緒同步問題

3、怎麼阻止物件的複製賦值,以及物件的構造

C 設計模式 1 單例模式

最近在設計模式的一些內容,主要的參考書籍是 head first 設計模式 同時在學習過程中也檢視了很多中關於設計模式的一些文章的,在這裡記錄下我的一些學習筆記,一是為了幫助我更深入地理解設計模式,二同時可以給一些初學設計模式的朋友一些參考。首先我介紹的是設計模式中比較簡單的乙個模式 單例模式 因為...

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

單例模式的特點 1 該類只有乙個例項 2 該類在內部建立該例項 3 向整個系統公開這個例項介面 適用於多執行緒的四種程式設計方式 第一種 將建構函式設為私有可以保證其他類不能從這個類派生或者建立類的例項 另外 析構函式私有化則是為了讓某個類只能通過new來建立 class singletion1 p...

C 設計模式 1 單例模式

原文 c 設計模式 1 單例模式 最近在設計模式的一些內容,主要的參考書籍是 head first 設計模式 同時在學習過程中也檢視了很多中關於設計模式的一些文章的,在這裡記錄下我的一些學習筆記,一是為了幫助我更深入地理解設計模式,二同時可以給一些初學設計模式的朋友一些參考。首先我介紹的是設計模式中...