工廠方法模式是類的建立模式,又叫做虛擬構造子(virtual constructor)模式或者多型性工廠(polymorphic
factory)模式。
工廠方法模式的用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。
工廠方法模式的結構:
抽象工廠角色:擔任這個角色的是工廠方法模式的核心,它是與應用程式無關的。任何在模式中建立物件的工廠類必須實現這個介面。在上面的系統中,這個角色由j**a介面「抽象工廠」扮演;在實際的系統中,這個角色也常常使用抽象j**a類實現。
具體工廠角色:擔任這個角色的是實現了抽象工廠介面的具體j**a類。具體工廠角色含有與應用密切相關的邏輯,並且受到應用程式的呼叫以建立產品物件。在本系統中給出了三個這樣的角色,也就是具體j**a類。
抽象產品角色:工廠方法模式所建立的物件的超型別,也就是產品物件共同父類或共同擁有的介面。在本系統中,這個角色由j**a介面抽項產品扮演;在實際的系統中,這個角色也常常使用抽象j**a類實現。
具體產品角色:這個角色實現了抽象產品所宣告的介面。工廠方法模式所建立的每乙個物件都是某個具體產品角色的例項。
例如:抽象工廠類是工廠方法模式的核心,但是它並不掌握水果類或蔬菜類的生殺大權。相反地,這項權利被交給子類,即applegardener stawberrygardener以及grapegardener。
**清單:
抽象產品類
具體產品角色(蘋果)
具體產品角色(葡萄)
具體產品角色(士多啤梨)
抽象工廠類
具體工廠類(蘋果)
具體工廠類(葡萄)
具體工廠類(士多啤梨)
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...
工廠方法模式(一) 簡單工廠方法模式
ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...