工廠模式與抽象工廠模式
當新增產品類後,如果採用簡單工廠模式,必須修改工廠類,這時比較理想的方法 是採用工廠模式。
在工廠模式中,增加了乙個工廠抽象類,由這個抽象類可生成多個具體工廠類,針對新增加的具體產品類,不必修改已有的工廠類,只需增加乙個具體工廠類,這就是工廠模式比簡單工廠模式先進的地方。
工廠模式中的類一般是這樣的:
乙個抽象產品類,多個具體產品類
乙個抽象工廠類,多個具體工廠類
當新增具體產品類時,不必修改已有的工廠類,只需增加具體工廠類,在具體工廠類中,與簡單工廠模式一樣,一般只有乙個靜態工廠方法。
來個比喻:
乙個農場中由乙個人來管理農場中的所有產品,這就是簡單工廠模式,這種模式只適合小的農場。
當農場規模擴大後,乙個人來管理顯示不合適,這時就需要多個人來管理,相當於有多個具體工廠類,每個人管理不同的產品,如張三管理大白菜,李四來管理蘋果...
如果農場進一步擴大,比如大白菜這個品種,有北方的大白菜,有南方的大白菜,或者更多,其它的產品與大白菜類似,分成許多地域的品種,這時就要採用抽象工廠模式。
農場的抽象工廠模式:
乙個抽象產品類,用來管理南方的產品,包括大白菜等
另乙個抽象產品類,用來管理北方的產品,包括大白菜等
或者有更多
乙個抽象工廠類,多個具體工廠類,其中乙個專門管理各地的大白菜,其它類似
簡單工廠模式,工廠方法模式,抽象工廠模式 比較
簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...
簡單工廠模式,工廠方法模式,抽象工廠模式 比較
簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...
簡單工廠模式,工廠方法模式,抽象工廠模式 比較
簡單工廠模式 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數不同來返回不同的物件的例項,不修改 的話,是無法擴充套件的 工廠方法模式 工廠方法模式是針對每一種產品提供乙個工廠類,通過不同的工廠例項來建立不同的產品例項。在同一等級結構中,支援增加任意產品 抽象工廠模式 抽象工廠模式應對產品族的...