設計模式 工廠方法模式

2021-08-23 12:03:12 字數 1397 閱讀 4457

抽象工廠:

定義乙個用於建立物件的介面,讓子類決定例項化那乙個類。

使乙個類的例項化延遲到其子類或其實現類。

類圖如下:

產品類

//人類(抽象產品類)

public

inte***ce human

//黃種人(具體產品類)

public

class

yellowhuman

implements

human

}

//白種人(具體產品類)

public

class

whitehuman

implements

human

}

工廠類

//抽象工廠

public

abstract

class abstracthumanfactory

//人類工廠

public

class

humanfactory

extends

abstracthumanfactory catch (exception e) }}

//進行測試

public

static

void

main(string args)

工廠模式的優點:良好的封裝性、降低模組之間的耦合性、擴充套件性強、遮蔽產品類。例如上述例子中,如果需要新增乙個產品類,只需要實現其抽象即可,工廠類不需要發生任何變化。且呼叫者不需要關心其實現類如何變化,只需要關心其抽象即可。

工廠方法模式是典型的解耦框架。高層模組只需要關注產品的抽象,不需要關注其實現,符合迪公尺特法則。高層模組只依賴產品的抽象,符合裡式替換原則。

靜態工廠類是工廠模式的乙個擴充套件,在上述例子的基礎上去掉抽象工廠,將createhuman()方法改為靜態方法

//人類工廠

public

class humanfactory catch (exception e) }}

//測試方法

public

static

void

main(string args)

執行結果沒有發生任何變化,但是程式變簡單了。呼叫也變簡單了。其缺點是擴充套件比較困難,不符合開閉原則(對修改關閉,對擴充套件開放)。

設計模式 工廠方法模式

一 工廠方法 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...