簡單工廠模式最大的優點在於實現物件的建立和物件的使用分離,將物件的建立交給專門的工廠類負責,但是其最大的缺點在於工廠類不夠靈活,增加新的具體產品需要修改工廠類的判斷邏輯**,而且產品較多時,工廠方法**邏輯將會非常複雜。
此模式中,通過定義乙個抽象的核心工廠類,並定義建立產品物件的介面,建立具體產品例項的工作延遲到其工廠子類去完成。這樣做的好處是核心類只關注工廠類的介面定義,而具體的產品例項交給具體的工廠子類去建立。當系統需要新增乙個產品是,無需修改現有系統**,只需要新增乙個具體產品類和其對應的工廠子類,使系統的擴充套件性變得很好,符合物件導向程式設計的開閉原則。
工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了物件導向的多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的介面,而不負責產品類被例項化這種細節,這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。抽象工廠模式
提供乙個建立一系列相關或相互依賴物件的介面,而無須指定它們具體的類。抽象工廠模式又稱為kit模式,屬於物件建立型模式。
此模式是對工廠方法模式的進一步擴充套件。在工廠方法模式中,乙個具體的工廠負責生產一類具體的產品,即一對一的關係,但是,如果需要乙個具體的工廠生產多種產品物件,那麼就需要用到抽象工廠模式了。抽象工廠模式是工廠方法模式的公升級版本,他用來建立一組相關或者相互依賴的物件。他與工廠方法模式的區別就在於,工廠方法模式針對的是乙個產品等級結構;而抽象工廠模式則是針對的多個產品等級結構。在程式設計中,通常乙個產品結構,表現為乙個介面或者抽象類,也就是說,工廠方法模式提供的所有產品都是衍生自同乙個介面或抽象類,而抽象工廠模式所提供的產品則是衍生自不同的介面或抽象類。
在抽象工廠模式中,有乙個產品族的概念:所謂的產品族,是指位於不同產品等級結構中功能相關聯的產品組成的家族。抽象工廠模式所提供的一系列產品就組成乙個產品族;而工廠方法提供的一系列產品稱為乙個等級結構。
簡單工廠 工廠模式 抽象工廠模式
簡單工廠模式 public class operation set public double numberb set public virtual double getresult 加減乘除類 class operationadd operation class operationsub oper...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...
簡單工廠模式 工廠模式 抽象工廠模式
簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...