性冷淡風小結常用設計模式(五) 工廠模式

2021-09-02 22:32:59 字數 1843 閱讀 8984

一、工廠模式

定義:工廠模式:為建立物件提供過度介面,以便將建立物件的具體過程遮蔽隔離起來,達到提高靈活性的目的。

工廠方法

1、當乙個類不知道它所必須建立的物件的類的時候;

2、當乙個類希望由它的子類來指定它所建立的物件的時候;

3、當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫組子類是**者這一資訊區域性化的時候。

二、抽象工廠模式

抽象工廠

1、乙個系統應當不依賴於產品類例項被創立、組成和表示的細節,這對於所有形態的工廠模式都是重要的

2、這個系統的產品有至少乙個的產品族

3、同屬於乙個產品族的產品是設計成在一起使用的,這一約束必須得在系統的設計中體現出來

4、不同的產品以一系列的介面的面貌出現,從而使系統不依賴於介面實現的細節

啥都不說了,上**。場景為製作pizza,有各種口味的,使用抽象工廠方法,實現了不同風味的pizza在不同地域生產、包裝、運輸等等。

首先,pizza抽象工廠

public inte***ce absfactory
**然後,pizza的工廠拓展類—ldfactory **

public class ldfactory implements absfactory  else if (ordertype.equals("pepper")) 

return pizza;

}}

**然後,pizza的工廠拓展類—nyfactory **

public class nyfactory implements absfactory  else if (ordertype.equals("pepper")) 

return pizza;

}}

訂購pizza

public class orderpizza 

public void setfactory(absfactory mfactory)

} while (true);

} private string gettype() catch (ioexception e)

}}

測試一哈

public class pizzastroe 

}

三、工廠方法模式和抽象工廠模式對比

1、工廠模式是一種極端情況的抽象工廠模式,而抽象工廠模式可以看成是工廠模式的推廣

2、工廠模式用來建立乙個產品的等級結構,而抽象工廠模式是用來建立多個產品的等級結構

3、工廠模式只有乙個抽象產品類,而抽象工廠模式有多個抽象產品類

工廠模式的優點:

1、系統可以在不修改具體工廠角色的情況下引進新的產品

2、客戶端不必關心物件如何建立,明確了職責

3、更好的理解物件導向的原則,面向介面程式設計,而不是面向實現程式設計

---------------------

原文:

四、依賴抽象原則

1. 變數不要持有具體類的引用

2. 不要讓類繼承自具體類,要繼承自抽象類或者介面

3. 不要覆蓋類中已實現的方法

設計模式 工廠模式(五)

軟體領域中的設計模式的重要性不言而喻。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型。雖然知道這些特性的定義但是並沒有做到真正的理解,這樣特性有什麼作用?用於什麼場合中等等問題,帶著疑問開始學習設計模式,主要參考 大話設計模式 和 設計模式 可復用物件導向軟體的基礎 兩本書。工廠方...

設計模式 五 工廠模式

工廠模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類,克服了簡單工廠違背開放 封閉原則的缺點,又保持了封裝物件建立過程的有點。開放 封閉原則 對於拓展是開放的,對於更改是封閉的 學生和志願者繼承雷鋒類,學生工廠和志願者工廠實現了雷鋒工廠介面,當需要改變...

PHP五種常用的設計模式 工廠模式

一直對設計模式有一種敬畏之心,每次想要看設計模式的時候就會想到erich gamma,richard helm,ralph johnson,john vlissides的黑皮 設計模式 基本都望而止步,要把那本書看完可不是一時半會的,而且在沒有專案經驗的情況下,個人感覺基本都是紙上談兵。今天在ibm...