談談 C 單例模式
時間:2021-11-08 15:23:36
手機看文章
掃描二維碼
隨時隨地手機看文章
[導讀]單例模式是一個很常見的設計模式,也廣泛應用于程序開發(fā)。其具有如下特點:一個類只有一個實例化對象全局可以使用那么有人要問,那我不就定義一個類,程序只初始化一個全局的實例就好了嗎?沒錯,這樣是可以的。但是我們都知道程序會經(jīng)過多人的接手維護和開發(fā),比如第N個接手程序的時候,并不知道這個...
單例模式是一個很常見的設計模式,也廣泛應用于程序開發(fā)。其具有如下特點:
- 一個類只有一個實例化對象
- 全局可以使用
- 單例模式的基本實現(xiàn):包含單例模式的實現(xiàn),線程安全,以及生命周期等
- 單例模式的模板實現(xiàn), 多模塊調用單例存在的問題
單例模式的基本實現(xiàn)
在程序開發(fā)中,比較常見的單例就是程序啟動的相關配置信息了。比如我們定義一個SingletonConfig
類。注意這個類有如下特點:- 私有的構造函數(shù), 拷貝構造函數(shù),以及
operator=
, 保證其不能夠在類的外部進程對象構造,拷貝等操作。 GetInstance
是一個公有的靜態(tài)成員函數(shù),用來構造這個類唯一的實例對象m_objConfig
, 并且返回給使用者。
class SingletonConfig
{
public:
static SingletonConfig * GetInstance()
{
if (m_objConfig = = nullptr)
m_objConfig = new SingletonConfig;
return m_objConfig;
}
private:
SingletonConfig() { ; };
SingletonConfig(const SingletonConfig