3種工廠模式的比較

2021-06-17 22:30:49 字數 618 閱讀 6985

簡單工廠:

乙個具體工廠通過條件語句建立多個產品,產品的建立邏輯集中與乙個工廠類。

客戶端通過傳不同的引數給工廠,實現建立不同產品的目的

增加新產品時,需要修改工廠類、增加產品類,不符合ocp原則

工廠方法:

乙個工廠建立乙個產品,所有的具體工廠繼承自乙個抽象工廠。

客戶端先建立不同產品的工廠,再由工廠建立具體產品,產品的建立邏輯分散在每個具體工廠類中。

客戶端只依賴於抽象工廠與抽象產品,不依賴任何具體的工廠與具體產品

增加新產品時,需要增加工廠類和產品類,符合ocp原則

抽象工廠:

乙個具體工廠建立乙個產品族,乙個產品族是不同系列產品的組合,產品的建立的邏輯分在在每個具體工廠類中。所有的具體工廠繼承自同乙個抽象工廠。

客戶端建立不同產品族的工廠,產品族的工廠建立具體的產品對客戶端是不可見的。

增加新的產品族時,需要增加具體工廠類,符合ocp原則。

增加新產品時,需要修改具體工廠類和增加產品類,不符合ocp原則

如果沒有應對「多系列物件建立」的需求變化,則沒有必要使用抽象工廠模式,這時候使用簡單的靜態工廠完全可以。

上述3種模式都使客戶端脫離了與具體產品的耦合,客戶端不關注具體產品的生產方法。 

3種工廠模式的比較

簡單工廠 乙個具體工廠通過條件語句建立多個產品,產品的建立邏輯集中與乙個工廠類。客戶端通過傳不同的引數給工廠,實現建立不同產品的目的 增加新產品時,需要修改工廠類 增加產品類,不符合ocp原則 工廠方法 乙個工廠建立乙個產品,所有的具體工廠繼承自乙個抽象工廠。客戶端先建立不同產品的工廠,再由工廠建立...

三種工廠模式的比較

size small 轉來的 簡單工廠 乙個具體工廠通過條件語句建立多個產品,產品的建立邏輯集中與乙個工廠類。客戶端通過傳不同的引數給工廠,實現建立不同產品的目的 增加新產品時,需要修改工廠類 增加產品類,不符合ocp原則 工廠方法 乙個工廠建立乙個產品,所有的具體工廠繼承自乙個抽象工廠。客戶端先建...

工廠模式比較

工廠模式比較 1 簡單工廠模式 簡單工廠模式的特點是乙個工廠生產乙個型別的產品。簡單工廠模式 又可以叫做靜態工廠方法模式,簡單的來說就是由乙個工廠物件來決定建立出哪乙個具體的產品類的例項。其類圖如下所示 工廠類 creator 包含乙個或者多個靜態工廠方法,每個靜態工廠方法會建立乙個新的具體產品的例...