創建模式概述:
創建模式是對類的實例化過程的抽象化。一此係統在創建對象時,需要動態地決定怎樣創建對象,創建哪些對象,以及如何組合和表示這些對象。創建模式描述了怎樣構造和封裝這些動態的決定。
類的創建模式:
類的創建模式使用繼承關係,把類的創建延遲到子類,從而封裝了客戶端將得到哪些具體類的信息,並且隱藏了這些類的實例是如何被創建和放在一起的。
1、簡單工廠
2、工廠方法
3、抽象工廠
對象的創建模式:
對象的創建模式則把對象的創建過程動態委派給另一個對象,從而動態地決定客戶端將得到哪些具體類的實例,以及這些類的實例是如何被創建和組合在一起的。
1、單例
(1)單例模式的結構:
餓漢式、懶漢式、登記式(可繼承)
(2)單例類的狀態
有狀態單例類:有狀態的可變的單例對象常常當做狀態庫使。比如一個單例對 象可以持有一個int類型的屬性,用來給一個系統提供一個數值惟一的序列號碼,作爲某個販賣系統的賬單號碼。
無狀態單例類:單例類也可以沒有狀態,僅用做提供工具性函數的對象。既然是爲了提供工具性的函數,也就沒有必要創建多個實例,因此使用單例模式很合適。
2、多例
3、建造
有些情況下,一個對象會有一些重要的性質,在它們沒有恰當值之前,對象不能作爲一個完整的產品使用。比如,一個電子郵件有發件人地址、收件人地址、主題、內容、附錄等部分,而在最起碼的收件人地址得到賦值之前,這個電子郵件不能發出。
有些情況下,一個對象的一些性質必須按某個順序賦值纔有意義。在某個性質沒有賦值之前,別一個性質則無法賦值。這些情況使得性質本身的建造涉及到複雜的商業。
這時候,此對象相當於一個有待建造的產品,而對象的這些性質相當於產品的零件,建造產品的過程是建造零件的過程。
4、原型