生活中的例子:
車有很多的品牌, 寶馬,賓士等, 製造汽車的工廠就是抽象出來的工廠, 而製造寶馬汽車的工廠 ,就是具體的產品工廠,這就是工廠方法的應用場景工廠方法模式: 定義乙個建立物件的介面, 讓子類決定例項化哪乙個類, 工廠方法使乙個類的例項化延伸到了子類
creator: 抽象工廠, 宣告工廠方法
concretecreator: 具體工廠,建立具體產品物件
product:抽象產品,宣告產品共有的介面
concreteproduct:具體產品
在《簡單工廠模式》
中說道, 工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,但是增加新的功能需要修改工廠類中額case分支條件,修改原有的類,違背了開閉原則
下圖是對簡單工廠模式的結構改進
把簡單工廠類中的邏輯判斷移到客戶端, 當增加減法時,增加減法類和和減法工廠類,而不是修改原來的類
下面是工廠方法的實現
場景:雷鋒幫助孤寡老人, 大學生幫助孤寡老人, 志願者幫助孤寡老人
場景分析:雷鋒是可以抽象為 樂於幫助人的群體,大學生和志願者是具體的群體
,解壓後目錄如下圖:
優點:克服了簡單工廠模式違背開閉原則,又保持了封裝物件建立過程的優點
缺點:每增加乙個產品,就需要加乙個產品工廠類,增加了額外的開發量
乙個類想要由自己的子類來定義某物件的建立過程。
讀書筆記 《大話設計模式》工廠方法模式
工廠方法模式,又稱工廠模式 多型工廠模式和虛擬構造器模式,通過定義工廠父類負責定義建立物件的公共介面,而子類則負責生成具體的物件。工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。下圖為計算器程式的工廠方法模式的uml圖結構 下面為計算器程式的...
設計模式讀書筆記(七) 工廠方法模式
模式定義 工廠方法模式 factory method pattern 又名工廠模式,虛擬構造器 virtual constructor 模式 多型工廠模式 polymorphic factory 模式,它屬於類建立型。在該模式中工廠父類負責定義建立產品物件的公共介面,而工廠子類則負責生成具體產品物件...
大話設計模式讀書筆記 簡單工廠模式
普通的工廠方法模式通常伴隨著物件的具體型別與工廠具體型別的一一對應,客戶端 根據需要選擇合適的具體型別工廠使用。然而,這種選擇可能包含複雜的邏輯。這時,可以建立乙個單一的工廠類,用以包含這種選擇邏輯,根據引數的不同選擇實現不同的具體物件。這個工廠類不需要由每個具體產品實現乙個自己的具體的工廠類,所以...