單例模式 Singleton 懶漢 餓漢模式

2021-09-12 14:39:12 字數 1211 閱讀 8757

其他文章:

#include "stdafx.h"

#include #if 0

單例模式指乙個類只允許有乙個例項,並提供乙個訪問它的全域性訪問點,使得系統中只有唯一的

乙個物件例項,型別分為懶漢模式和餓漢模式

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

實現方法:建構函式宣告為private或protect防止被外部函式例項化,

內部儲存乙個private static的類指標儲存唯一的例項,例項的動作由一

個public的類方法代勞,該方法也返回單例類唯一的例項

#endif

std::mutex mt;

//懶漢模式 用到的時候才去初始化

class singleton

private:

//倆個禁止可加可不加

singleton(const singleton&) {}; //禁止拷貝

singleton& operator=(const singleton&) {}; //禁止賦值

static singleton* m_pinstance;

public:

static singleton* getinstance();

};singleton* singleton::m_pinstance = null;

singleton* singleton::getinstance()

return m_pinstance;

}//餓漢模式 單例類定義的時候就進行初始化

//因為定義時就已經初始化完成,所以多執行緒環境下,執行緒是安全的

class singleton

private:

//倆個禁止可加可不加

singleton(const singleton&) {}; //禁止拷貝

singleton& operator=(const singleton&) {}; //禁止賦值

static singleton* m_pinstance;

public:

static singleton* getinstance();

};singleton* singleton::m_pinstance = new singleton;

singleton* singleton::getinstance()

int main()

單例模式Singleton(餓漢式和懶漢式)

單例模式在我們開發中經常會用到的,不知道你所喜歡用餓漢模式還是喜歡懶漢模式呢?為什麼會出現有兩種方式來實現單例模式?我看這其中必蹊蹺,你怎麼看?我們來看一下懶漢模式和餓漢模式的實現 餓漢模式 author zhou.ni versioncode 1 每次修改提交前 1 public class hu...

單例 Singleton 模式的餓漢懶漢式實現

設計模式是在大量的實踐中總結和理論化之後優選的 結構 程式設計風格 以及解決問題的思考方式。我們聽說比較多的就是單例模式,工廠模式,模式。單例模式,或者叫單例設計模式,就是採用一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。所以這就要求我們把類...

Singleton 單例模式(懶漢方式和餓漢方式)

單例模式的概念 單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。關鍵點 1 乙個類只有乙個例項 這是最基本的 2 它必須自行建立這個例項 3 它必須自行向整個系統提供這個例項 兩種實現方式 1 懶漢模式 類載入時不初始化 p...