簡單了解工廠方法模式

2021-10-07 13:14:03 字數 1455 閱讀 6898

工廠方法模式(factory method)是建立型模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。也是對簡單工廠模式的改進。

簡單工廠模式的主要缺點出現在工廠類,工廠類在建立產品物件時不唯一,需要通過條件判斷的方式來選擇對應的產品類。所以在新增新的產品時,需要把對應的建立條件新增到工廠類中,造成工廠類違背開閉原則

工廠方法模式針對其缺點進行了改進,讓工廠只建立乙個產品,每個具體產品對應不同的工廠,並對每個工廠進行抽象,建立抽象工廠,這樣使用者就可以只面對抽象工廠進行操作,當建立不同的產品時,只需要更換對應的工廠。這裡使用了多型特性(在程式**現超類物件的任何地方都可以用子類物件置換),也是對依賴倒置原則的應用。

下面通過具體的類圖了解工廠方法模式

下面為**實現

public

inte***ce

abstractfactory

public

class

concretefactorya

implements

abstractfactory

}

public

class

concretefactoryb

implements

abstractfactory

}

public

inte***ce

product

public

class

concreteproducta

implements

product

}

public

class

concreteproductb

implements

product

}

public

class

client

}

可見,工廠方法模式解決了簡單工廠模式的一些問題,在增加新的產品時,只需要新增乙個具體產品類和乙個對應的具體工廠類就可以了,其他工廠不需要改動。

值得注意的是在簡單工廠模式中,建立乙個產品是在工廠類內部進行選擇判斷的。而工廠方法模式把選擇判斷轉移給了使用者,也就客戶端來決定使用那個工廠來生產產品。你想要加功能,本來是修改工廠類的,而現在是修改客戶端。

在工廠方法模式中,乙個工廠只生產一類產品。如果乙個工廠想要生產多種產品就需要在工廠中新增對應的方法就可以了,這就是下面要學習的抽象工廠模式

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...

簡單示例了解工廠方法和抽象工廠模式

這兩種思路都是解決使用者與產品之間的關係,最主要的思想有兩點 1.使用者不關心產品建立的過程,注重於拿到產品 2.工廠可以生產滿足標準的被定義的物件 直接上 主要是思想 牛奶介面 public inte ce milk 具體產品 三鹿 public class sanlu implements mi...

簡單工廠模式 工廠方法模式

在實際應用中,我們可以考慮使用封裝 繼承 多型把程式的耦合度降低。1.簡單工廠模式 例子 寫乙個計算器模擬程式 思路 將業務進行封裝,並且進行松耦合,即不同的運算類之間互相不影響,可考慮通過繼承乙個類或者實現乙個介面 類operation,定義計算的統一介面 package smplefactory...