OO設計模式 工廠方法模式

2021-08-31 20:19:34 字數 841 閱讀 1906

最近在看oo設計模式,覺得設計模式還是挺有用的。現在只是對設計模式的諸多特性進行記錄,呵呵,這不是我的發明,算是對學習的筆記吧。以後會見gof23種設計模式逐一進行記錄和分析,廢話少說,先說工廠方法模式:

1、理解:

[b]將物件的具體建立過程剝離,客戶端無需知道物件是怎麼建立的,[/b]只需要使用物件。封裝物件的建立過程,將散落在系統各個角落的判斷邏輯給集中起來。

2、類圖:

[img]

3、設計物件:

抽象產品: 負責定義具體產品的功能集

具體產品: 負責實現抽象產品的約定

建立者: 負責依據不同的規則建立具體的產品

客戶端:呼叫建立者建立具體產品

4、變體:

建立者和具體產品合併,建立物件的方法變成靜態方法,具體產品的構造方法為私有方法,便演變成單例模式

5、優點和用途:

符合面向介面程式設計原則,客戶端無需關注具體建立產品的具體型別,只需要通過建立者建立產品,使用就ok了。具體的建立邏輯交由建立者管理。

符合開閉原則,新增乙個具體產品,對原先產品的邏輯沒有影響,對擴充套件開發對修改關閉,但要使用新產品的客戶端必須修改**適配

符合將變化的東西集中起來,避免散落在系統的各個角落,新增具體產品,只需要將建立者的建立邏輯修改,而不會波及到具體產品的使用和執行。

6、缺點:

當產品型別過多的時候,便會造成每個抽象產品需要乙個建立者,造成類**。為了避免這種現象發生,可以將建立者和抽象產品合併,在多層次的產品結構中,可以使用抽象工廠方法模式來解決這個問題(下一節會講到)。

7、應用:

jdk 中很多地方用到。如格式日期的******dataformat、如位元組碼載入器、很多專案的工具類。

設計模式 工廠方法模式

一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...

設計模式 工廠方法模式

1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...

設計模式 工廠方法模式

框架的基礎知識 對框架的理解 框架和設計模式的關係 工廠方法模式 定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到其子類。結構 產品 public inte ce product 具體產品 public class productimpl...