設計模式中的單例模式 c

2021-07-11 05:53:32 字數 744 閱讀 2278

首先科普下單例模式的概念。

單例模式,本質上就是保證某個類例項在程式生存週期有且只有乙個例項。

優點嘛,可以方便各個模組訪問,被訪問但不會一直建立new新的例項,始終只有這乙個,可以節省資源。

最經典的用例便是用在日誌記錄模組,工程中可能很多地方都會進行日誌的記錄,每處記錄如果都要建立新的日誌類例項,好像太頻繁了,很浪費資源的。這時候,單例類可以保證只有乙個類物件,而不會一直new新的出來。直接訪問就可以了。

下面我們會提供乙個c++單例模板,其中核心便是使用了模板跟乙個靜態物件來保證其生存週期一直存在,供程式使用

templateclass csingleton

};

如果你要弄乙個日誌記錄單例類,可以繼承上面這個單例模板,具體可以參見如下**:

.h

#ifndef logger_h

#define logger_h

#include "singleton.h"

class logger:public csingleton;

#endif // logger_h

.cpp

#include "logger.h"

#include logger::logger()

void logger::print()

done!

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

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

C 設計模式 (單例模式)

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

設計模式 單例模式(c )

在gof 設計模式 中,單例模式的定義為 保證乙個類僅有乙個例項,並提供乙個該例項的全域性訪問點。下面是單例模式的c 實現 方案一 建構函式和拷貝建構函式一定要宣告為private 定義static成員 單例指標和獲取單例指標的函式 static單例指標要在類外定義並初始化 實現獲取單例指標的函式時...