意圖:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性終點。
結構
在以下情況使用它
對於某些類來說,只有乙個例項是很重要的,可以讓類自身儲存它的唯一例項,並這個類隱藏他的建立介面,並提供乙個訪問例項的介面。還可以使用惰性初始化,或者用乙個靜態內部類儲存。
a
public class a
public static a geta()
}
a隱藏了構造方法,提供了乙個geta來訪問唯一例項,使用惰性初始化來建立例項,但是這種方式是執行緒不安全的,可能會建立多個例項。
public class b
private static class lazy
public static final b getinstance()
}
使用內部靜態類儲存例項可以避免這個問題。
很多模式都可以使用singleton模式實現
GOF 設計模式 builder模式筆記
意圖 將乙個複雜物件的構建與它的表示相分離,使得同樣的構建過程可以建立不同的表示。在以下情況使用builder模式 結構圖 builder模式更注重與乙個複雜物件的建立,像組裝一樣,一層一層,乙個模組乙個模組的裝配,是乙個由簡單物件到複雜物件的過程。假設現在去 請人組裝機子,一台好的 goodcom...
設計模式 單件模式
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 單件模式是用來保證共有資源唯一性的設計模式,舉個例子吧,假如我們是藝人,我們在同乙個經紀人的協助下開展工作,我們可以委託這個經紀人做一些事情,但是我們不能委託經紀人在幫你做報表的同時幫我訂外賣。用程式猿的語言來表達就是,我們可能在多處地方持有對同一資源的引用。由...