設計模式 單件模式

2021-09-13 12:56:08 字數 829 閱讀 2425

單件模式(singleton)也叫單例模式,是一種建立型模式。它確保乙個類只有乙個例項,並提供全域性訪問。

singleton中uniqueinstance類變數持有唯一的單件例項,getinstance()是靜態方法,可以通過類名在任何需要的地方使用它,與訪問全域性變數一樣,但是可以延遲例項化。

餓漢式:類載入就初始化例項,達到了執行緒安全的效果,但是在不需要的時候就例項化可能會造成資源浪費。

public class singleton 

public static singleton getinstance()

}

懶漢式:在需要的時候再初始化例項,執行緒不安全

public class singleton 

public static singleton getinstance()

return instance;}}

懶漢式(同步方法):在需要的時候再初始化例項,執行緒安全,效率低下

public class singleton 

public static synchronized singleton getinstance()

return instance;}}

雙重檢查:在需要的時候再初始化例項,執行緒安全,效率較高

public class singleton ;

public static singleton getinstance() }}

return instance;}}

設計模式 單件模式

1 1 singleton.h ifndef singleton h define singleton h include using namespace std class singleton 構構函式,防止拷貝構造另乙個例項,作為protected singleton 析構函式,作為protec...

設計模式 單件模式

2015年1月29日16 02 59 單件模式是用來保證共有資源唯一性的設計模式,舉個例子吧,假如我們是藝人,我們在同乙個經紀人的協助下開展工作,我們可以委託這個經紀人做一些事情,但是我們不能委託經紀人在幫你做報表的同時幫我訂外賣。用程式猿的語言來表達就是,我們可能在多處地方持有對同一資源的引用。由...

設計模式 單件模式

保持單一物件有時非常必要,尤其是資源類,比如視窗資源,登錄檔等等,所謂的單件模式的定義是 確保乙個類只有乙個例項,並提供乙個全域性的訪問點。其類圖雖說比較簡單,但單例模式還是有很多陷阱的。首先,給出單例模式的經典的懶漢式寫法 懶漢式 需要例項物件時才建立,延遲建立 class single pubi...