簡單工廠模式不是 23 種裡的一種,簡而言之,就是有乙個專門生產某個產品的類。
它只算工廠模式的乙個特殊實現。簡單工廠模式在實際中的應用相對於其他2個工廠模式用的還是相對少得多,因為它只適應很多簡單的情況。
1)建立shape介面
public inte***ce shape
(2)建立實現該介面的具體圖形類
圓形public class circle implements shape
@override
public void draw()
}長方形
public class rectangle implements shape
@override
public void draw()
}(3)建立工廠類:
public class shapefactory
if (shapetype.equalsignorecase("circle")) else if (shapetype.equalsignorecase("rectangle")) else if (shapetype.equalsignorecase("square"))
return null;}}
(4)測試方法:
public class test
}輸出結果:
circle
draw circle
rectangle
draw rectangle
square
draw square
如果我們這時要增加乙個產品,就需要修改工廠類中的方法,不符合開放-封閉的原則。
工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介面。
戴爾滑鼠工廠,惠普滑鼠工廠繼承它,可以分別生產戴爾滑鼠,惠普滑鼠。
生產哪種滑鼠不再由引數決定,而是建立滑鼠工廠時,由戴爾滑鼠工廠建立。
後續直接呼叫滑鼠工廠.生產滑鼠()即可
(1)增加乙個工廠介面:
public inte***ce factory
(2)增加相關工廠類:
圓形工廠類
public class circlefactory implements factory
}長方形工廠類
public class rectanglefactory implements factory
}圓形工廠類
public class squarefactory implements factory
}(3)測試:
public class test
輸出結果:
circle
draw circle
抽象工廠模式也就是不僅生產滑鼠,同時生產鍵盤。
也就是 pc 廠商是個父類,有生產滑鼠,生產鍵盤兩個介面。
戴爾工廠,惠普工廠繼承它,可以分別生產戴爾滑鼠+戴爾鍵盤,和惠普滑鼠+惠普鍵盤。
建立工廠時,由戴爾工廠建立。
後續工廠.生產滑鼠()則生產戴爾滑鼠,工廠.生產鍵盤()則生產戴爾鍵盤。
槍public inte***ce gun
子彈public inte***ce bullet
(2)建立介面對應實現類:
ak類public class ak implements gun
m4a1類
public class m4a1 implements gun
ak子彈類
public class ak_bullet implements bullet
}m4a1子彈類
public class m4a1
_bullet implements bullet
}(3)建立工廠介面
public inte***ce factory
(4)建立具體工廠
生產ak和ak子彈的工廠
public class ak_factory implements factory
@override
public bullet producebullet()
}生產m4a1和m4a1子彈的工廠
public class m4a1_factory implements factory
@override
public bullet producebullet()
}(5)測試
public class test
輸出結果:
load bullets with ak
shooting with ak
設計模式 抽象工廠 建立型模式
介紹了簡單工廠與工廠方法之後,現在我們來看一下工廠三兄弟的最後乙個 抽象工廠。那什麼是抽象工廠呢?抽象工廠模式 abstract factory pattern 提供乙個建立一系列相關或相互依賴物件 的介面,而無須指定它們具體的類。抽象工廠模式又稱為kit模式,屬於物件建立型模式。說起來,抽象工廠與...
建立型模式 工廠模式and抽象工廠模式
意圖 定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。主要解決 主要解決介面選擇的問題。何時使用 我們明確地計畫不同條件下建立不同例項時。如何解決 讓其子類實現工廠介面,返回的也是乙個抽象的產品。關鍵 建立過程在其子類執行。步驟 建立乙個介面 形狀sh...
設計模式 建立型模式之抽象工廠模式
抽象工廠模式是工廠模式中最抽象的乙個工廠模式,引入的產品組的概念,對它的定義就是將一組相關或相互依賴的物件提供介面,而不需要具體的物件,這個定義是很抽象的。抽象工廠模式包括的角色 1.抽象工廠類 宣告一組用於建立一種產品的的方法 2.具體工廠類 繼承了抽象工廠類,建立一組具體產品的物件 3.抽象產品...