2 抽象工廠模式

2021-08-28 13:53:57 字數 1338 閱讀 9893

參考

工廠方法模式和抽象工廠模式不好分清楚,他們的區別如下:

工廠方法模式:

乙個抽象產品類,可以派生出多個具體產品類。

乙個抽象工廠類,可以派生出多個具體工廠類。

每個具體工廠類只能建立乙個具體產品類的例項。

抽象工廠模式:

多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。

乙個抽象工廠類,可以派生出多個具體工廠類。

每個具體工廠類可以建立多個具體產品類的例項,也就是建立的是乙個產品線下的多個產品。

區別:

工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個。

工廠方法模式的具體工廠類只能建立乙個具體產品類的例項,而抽象工廠模式可以建立多個。

工廠方法建立 「一種」 產品,他的著重點在於"怎麼建立",也就是說如果你開發,你的大量**很可能圍繞著這種產品的構造,初始化這些細節上面。也因為如此,類似的產品之間有很多可以復用的特徵,所以會和模版方法相隨。

抽象工廠需要建立一些列產品,著重點在於"建立哪些"產品上,也就是說,如果你開發,你的主要任務是劃分不同差異的產品線,並且盡量保持每條產品線介面一致,從而可以從同乙個抽象工廠繼承。

抽象工廠模式也就是不僅生產滑鼠,同時生產鍵盤。

也就是 pc 廠商是個父類,有生產滑鼠,生產鍵盤兩個介面。

戴爾工廠,惠普工廠繼承它,可以分別生產戴爾滑鼠+戴爾鍵盤,和惠普滑鼠+惠普鍵盤。

建立工廠時,由戴爾工廠建立。

後續工廠.生產滑鼠()則生產戴爾滑鼠,工廠.生產鍵盤()則生產戴爾鍵盤。

當產品只有乙個的時候,抽象工廠模式即變為工廠模式,當工廠模式的產品變為多個是,工廠模式即變成抽象工廠模式。

假設我們增加華碩工廠,則我們需要增加華碩工廠,和戴爾工廠一樣,繼承 pc 廠商。

之後建立華碩滑鼠,繼承滑鼠類。建立華碩鍵盤,繼承鍵盤類即可。

假設我們增加耳麥這個產品,則首先我們需要增加耳麥這個父類,再加上戴爾耳麥,惠普耳麥這兩個子類。

之後在pc廠商這個父類中,增加生產耳麥的介面。最後在戴爾工廠,惠普工廠這兩個類中,分別實現生產戴爾耳麥,惠普耳麥的功能。 以上。

2 抽象工廠模式

一 基本模式 1.抽象工廠,具體工廠,抽象產品,具體產品作為其要素 2.具體工廠生產出具有 抽象產品 協議方法的產品 3.生產出的具體產品細節對使用者透明,使用者只需知道抽象產品的協議即可。4.使用時 abstractproduct aproduct concretefactory.createpr...

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

設計模式(2) 抽象工廠模式

抽象工廠模式 abstract factory pattern 是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式...