C 設計模式之單例模式

2021-10-19 11:00:33 字數 987 閱讀 6381

實現單例步驟

1、建構函式私有化

2、增加靜態的私有的當前類的指標物件

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

單例分為懶漢式和餓漢式

在多執行緒環境下:懶漢式會造成執行緒不安全(解決方法:加鎖),餓漢式執行緒安全。

懶漢式:只有呼叫getinstance時才會new乙個物件;

class

singleton_lazy

public:

static singleton_lazy*

getinstance()

return psingleton;

}private

:static singleton_lazy* psingleton;};

//類外初始化

singleton_lazy* singleton_lazy::psingleton =

null

;

餓漢式:類外初始化時直接new乙個物件

class

singleton_hungry

public:

static singleton_hungry*

getinstance()

private

:static singleton_hungry* psingleton;};

//類外初始化

singleton_hungry* singleton_hungry::psingleton =

new singleton_hungry;

int

main()

//輸出

我是餓漢式建構函式

main函式開始執行

int

main()

C 設計模式之單例模式

在遊戲開發過程中,我們時常會遇到單例模式的運用場景。比如你遊戲當中的最終boss,你希望你的boss只能有乙個,所以這裡你就可以用單例模式 那麼什麼是單例模式呢?看下面的 分析。include include using namespace std class singleton public st...

C 設計模式之單例模式

設計模式是以理論的高度,總結了開發過程中的一多種不同的方法,在各種設計模式中,它們都有著不同實現方式,所起的作用也不相同,我最近看了部分設計模式,主要是以我自己的理解來闡述對它們的看法。我們可以看到單例的大概實現是很簡單的。幾個需要注意的地方是 只有當我們的建構函式為私有時,此時,我們在類外部就不能...

C 設計模式之 單例模式

單例模式,故名思義,其意圖是保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點,該例項被所有的程式模組共享.在很多地方要用到這種設計模式,如系統的日誌輸出,作業系統的視窗,乙個pc連乙個鍵盤等.單例模式有許多實現方法.第一次呼叫該類例項的時候才產生乙個新的該類例項,並在以後僅返回此例項,需要加鎖...