天天看點

建立型模式--工廠方法模式【Factory Method Pattern】

模式定義

工廠方法模式(Factory Method Pattern)又稱為工廠模式,也叫虛拟構造器(Virtual Constructor)模式或者多态工廠(Polymorphic Factory)模式,它屬于類建立型模式。在工廠方法模式中,工廠父類負責定義建立産品對象的公共接口,而工廠子類則負責生成具體的産品對象,這樣做的目的是将産品類的執行個體化操作延遲到工廠子類中完成,即通過工廠子類來确定究竟應該執行個體化哪一個具體産品類。

工廠方法模式是簡單工廠模式的衍生,解決了許多簡單工廠模式的問題。首先完全實作‘開-閉 原則’,實作了可擴充。其次更複雜的層次結構,可以應用于産品結果複雜的場合。

在工廠方法模式中具體工廠負責生産具體的産品,每一個具體工廠對應一種具體産品,工廠方法也具有唯一性,一般情況下,一個具體工廠中隻有一個工廠方法或者一組重載的工廠方法。

模式結構

工廠方法模式包含如下角色:

  • Product:抽象産品
  • ConcreteProduct:具體産品
  • Factory:抽象工廠
  • ConcreteFactory:具體工廠

優缺點

工廠方法中,我們把生成算法實作類的時間延遲,就是通過對應的工廠來生成對應的算法類,這樣就做到了無論需要增加多少算法實作類,都可以通過增加工廠實作類來實作,這種設計方式符合 “開閉”原則。缺點就是當算法過多的時候,需要定義很多算法對應的工廠類

參考文檔

  • 工廠方法模式(Factory Method Pattern)

繼續閱讀