一、工廠模式
定義:工廠模式:為建立物件提供過度介面,以便將建立物件的具體過程遮蔽隔離起來,達到提高靈活性的目的。
工廠方法
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...