設計模式 建立型設計模式 03 抽象工廠(php)

2021-10-10 03:07:54 字數 986 閱讀 8060

建立型設計模式

抽象工廠

抽象工廠模式(abstract factory)是所有形態的工廠模式中最為抽象和最具一般性的工廠模式。抽象工廠模式可以向客戶端提供乙個介面,是的客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。

要理解抽象工廠模式,必須理解以下2個概念:

產品等級結構:產品的繼承結構

產品族:由同乙個工廠生產的,位於不同產品等級結構中的同一等級產品

元件抽象的,而面板,選單,按鈕都是抽象元件的不同形態的繼承實現的不同產品(多型),面板又有不同的型別面板,所以他們構成了乙個面板的等級結構,選單、按鈕類似,而且與面板有類似的等級結構劃分,

那麼在不同的產品中,有著相同特性的等級結構的產品便稱為產品族,如小產品組有:公羊、母羊、母豬。

再比如:在作業系統開發中,有很多控制項:

視窗:win視窗;linux 視窗;

訊息:win訊息;linux 訊息;

按鈕:win按鈕; linux 按鈕;

進度條:win進度條; linux進度條;

視窗、按鈕、訊息、進度條組成了4個產品等級結構

通過他們的等級介面可以分出win、linux 產品族,而只有相同產品族的產品在一起才能正常工作。

一般而言,有多少個產品等級結構,就會在工廠角色中發現多少個工廠方法。每乙個產品等級結構中有多少個具體的產品,就有多少個產品族,也就會在工廠等級結構中發現多少個具體工廠。

1、當系統所提供的工廠生產的具體產品並不是一類簡單的物件,而是位於多個不同產品等級結構中、屬於相同型別的具體產品時就可以使用抽象工廠模式

###優點

1、當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件

###缺點

1、要增加乙個系列的某一產品,既要在抽象的 creator 裡加**,又要在具體的裡面加**。

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

一,動機 在工廠方法模式中,具體工廠負責產生具體的產品,每個具體工廠對應一種具體產品。但是有時候,乙個工廠需要提供多個產品物件,而不是單一。對於學校,不僅能培養本科生,研究生,還能培養博士生。這個時候,工廠方式模式就顯得不夠用。引入兩個概念 1,產品等級結構。即產品的繼承結構。所有學校的 本科生,都...

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

建立性模式有五種 1.工廠模式 簡單工廠模式 經常被用到,不屬於gof23種設計模式 工廠方法模式 抽象工廠模式 2.建造者模式 3.原型模式 4.單例模式 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客...

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

有點複雜。一般的工廠模式下,每個實體類都需要乙個對應的工廠,當實體類過多時工廠的數量也會變多。當實體類還有子類時,我們需要的工廠就更多了。抽象工廠模式是將所有工廠的共性抽象出來 public inte ce animalfactory 生產母狗和母貓 public class femaleanima...