GOF 設計模式 單件模式 筆記

2021-10-23 13:35:33 字數 551 閱讀 8971

意圖:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性終點。

結構

在以下情況使用它

對於某些類來說,只有乙個例項是很重要的,可以讓類自身儲存它的唯一例項,並這個類隱藏他的建立介面,並提供乙個訪問例項的介面。還可以使用惰性初始化,或者用乙個靜態內部類儲存。

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