工廠模式與抽象工廠模式 簡單比較 例子

2021-09-30 06:28:04 字數 696 閱讀 8331

工廠模式與抽象工廠模式

當新增產品類後,如果採用簡單工廠模式,必須修改工廠類,這時比較理想的方法   是採用工廠模式。

在工廠模式中,增加了乙個工廠抽象類,由這個抽象類可生成多個具體工廠類,針對新增加的具體產品類,不必修改已有的工廠類,只需增加乙個具體工廠類,這就是工廠模式比簡單工廠模式先進的地方。

工廠模式中的類一般是這樣的:

乙個抽象產品類,多個具體產品類

乙個抽象工廠類,多個具體工廠類

當新增具體產品類時,不必修改已有的工廠類,只需增加具體工廠類,在具體工廠類中,與簡單工廠模式一樣,一般只有乙個靜態工廠方法。

來個比喻:

乙個農場中由乙個人來管理農場中的所有產品,這就是簡單工廠模式,這種模式只適合小的農場。

當農場規模擴大後,乙個人來管理顯示不合適,這時就需要多個人來管理,相當於有多個具體工廠類,每個人管理不同的產品,如張三管理大白菜,李四來管理蘋果...

如果農場進一步擴大,比如大白菜這個品種,有北方的大白菜,有南方的大白菜,或者更多,其它的產品與大白菜類似,分成許多地域的品種,這時就要採用抽象工廠模式。

農場的抽象工廠模式:

乙個抽象產品類,用來管理南方的產品,包括大白菜等

另乙個抽象產品類,用來管理北方的產品,包括大白菜等

或者有更多  

乙個抽象工廠類,多個具體工廠類,其中乙個專門管理各地的大白菜,其它類似

簡單工廠模式,工廠方法模式,抽象工廠模式 比較

簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...

簡單工廠模式,工廠方法模式,抽象工廠模式 比較

簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...

簡單工廠模式,工廠方法模式,抽象工廠模式 比較

簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...