設計模式二三事 單例模式

2021-07-11 12:12:55 字數 819 閱讀 8880

一、單例模式

單例模式模式能夠保證乙個類的物件例項只有乙個,具體的做法是將類的建構函式設定為私有或者受保護,然後再提供乙個靜態介面,通過該介面可以建立或者獲取該類的唯一例項物件,具體的**如下表示:

class singleton

;public:

static singleton* getinstance()

private:

static singleton* m_p;

};singleton* singleton::m_p = null;

上述**是普通的單例模式的實現方式。

為了讓類具有多型行為,可以引入繼承方式,具體如下:

class singleton_1

public:

virtual void show(){}

static singleton_1* getinstance( const char* name )

else if( strcmp( name, "singletonb" ) == 0 )

}return m_p;

}private:

static singleton_1* m_p;

};singleton_1* singleton_1::m_p = null;

class singletona : public singleton_1

public:

virtual void show()

{cout<<"singletona"<

上述**只是提供思路,具體的實現還需要考慮很多細節問題,如記憶體釋放問題,多執行緒共享問題等。

設計模式那點事 單例模式

單例模式,也許是我們平常用得和接觸比較多的設計模式了,很多朋友在企業面試的時候都會被問到。說起這裡,我想起了當初畢業面試時那張口結舌的醜態,心中總會多少有些愧疚,痛恨自己基礎實在是糟糕。好吧,讓我們回到主題,什麼是單例模式呢?概念 單例模式 singleton 它保證了乙個類僅有乙個例項,並提供乙個...

設計模式二三事 組合模式

三 組合模式 組合模式允許派生類包含基類例項,以此來構成相互巢狀的組合方式,可構成類似樹形結構或者線性表,具體 如下 the base composite class company virtual void add company pcom virtual void show int depth ...

設計模式之工廠模式二三事

很久沒有寫過c 的專案了,最近看了看設計模式,對於工廠模式略有心得,故寫出來分享。工廠模式大致分為三類 簡單工廠模式 工廠方法模式 抽象工廠模式 ok,上圖說明,還是用網上流行的做菜比喻。無工廠情況 我想吃紅燒魚,沒問題,我自己做 new fish f new braisingfish 自己做紅燒魚...