1. 程式人生 > 其它 >設計模式 工廠方法模式

設計模式 工廠方法模式

工廠方法模式(Factory Method Pattern):(工廠模式)也叫做虛擬構造器模式者多型工廠模式,屬於類建立型模式。在工廠方法模式中,工廠父類負責定義建立產品物件的公共介面,而工廠子類負責生成具體的產品物件。

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

  • Protect:抽象產品
  • ConcreteProtect:具體產品
  • Factory:抽象工廠
  • ConcreteFactory:具體工廠

具體流程為客戶端掌握具體工廠的名稱,根據具體工廠的名稱抽象工廠傳送請求,獲取到一個具體工廠的物件,由具體工廠物件創建出具體的產品,關係類圖如下,客戶端引用抽象工廠和和抽象產品類,具體工廠和具體產品類分別繼承抽象工廠以及抽象產品類,具體工廠引用具體產品類,關係為製造關係。

 工廠方法模式優點:

  • 使用者只需要關心所需產品對應的工廠,無需關心建立細節,甚至無需關心具體產品類的類名。
  • 工廠可以自主確定建立何種產品物件,而如何建立這個物件的細節則完全封裝在具體產品內部。
  • 在系統中增加新產品是,無需修改抽象工廠和抽象產品提供的具體介面,只需要新增一個具體工廠和具體產品即可。

 缺點:

  • 類的數量過多
  • 增加了系統的抽象性和理解難度