工廠方法模式 Factory Method

2022-09-23 18:27:13 字數 838 閱讀 8033



工廠方法模式是類的建立模式,又叫做虛擬構造子(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 ...