設計模式 建立型模式 工廠模式,抽象工廠模式

2021-09-01 06:01:13 字數 2254 閱讀 1126

簡單工廠模式不是 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.抽象產品...