實現單例步驟
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連乙個鍵盤等.單例模式有許多實現方法.第一次呼叫該類例項的時候才產生乙個新的該類例項,並在以後僅返回此例項,需要加鎖...