單例模式 餓漢式和懶漢式建立

2021-08-18 11:18:02 字數 819 閱讀 6110

#define _crt_secure_no_warnings

#include using namespace std;

//單例不考慮記憶體洩漏的問題

class a

static a* a;

public:

static a* getinstance() };

a* a::a = null;

//實現單例的步驟

//1、夠哦早函式私有化

//2、增加靜態私有的當前類的指標變數

//3、提供靜態對外介面,可以讓使用者獲得單例物件

//單例 分為 懶漢式 餓漢式 懶漢式執行緒不安全

class singleton_lazy

static singleton_lazy* getinstance()

return psingleton;

} static singleton_lazy* psingleton;

};//類外初始化

singleton_lazy* singleton_lazy::psingleton = null;

//餓漢式 執行緒安全

class singleton_hungry

static singleton_hungry* getinstance()

static singleton_hungry* psingleton;

};singleton_hungry* singleton_hungry::psingleton = new singleton_hungry;

int main()

單例模式 懶漢式 和 餓漢式

單例模式三要素 a 私有構造方法 這樣外界就沒辦法建立物件 b 私有靜態引用指向自己例項 c 以自己例項為返回值的公有靜態方法 對外暴露介面獲取例項 在spring中建立的bean例項預設都是單例模式存在的。所謂 懶漢式 與 餓漢式 的區別,是在與建立單例物件的時間不同。懶漢式 是在你真正用到的時候...

單例模式 餓漢式和懶漢式

1.單例模式。singleton無論外界有多少物件都是乙個指向同乙個位址。節約空間。1 構造方法私有化 2 在本類中建立乙個static修飾的物件。3 所有的屬性必須私有化。4 通過乙個方法來把本類中建立的該物件返回。2.餓漢式 指全域性的單例例項在類裝載時構建。class people publi...

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

單例模式 餓漢式和懶漢式 餓漢式單例模式,static表變數會在裝載時初始化,不會涉及多個執行緒物件訪問該物件的問題,虛擬機器只會保證裝載一次該類,不會發生併發的問題,可以省略synchronized關鍵字 缺點 如果只是載入本類,而不是呼叫getinstance方法,永遠不呼叫,則會造成資源浪費的...