設計模式 工廠方法模式

2021-07-26 14:30:12 字數 747 閱讀 9404

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

product:定義工廠方法所建立的物件的介面;

concreteproduct:工廠方法建立的具體物件,實現product介面;

creator:工廠方法類抽象介面,factorymethod()函式返回乙個product物件;

concretecreator:建立concreteproduct物件的具體工廠;

適用範圍:

(1)當乙個類不知道它所必須建立的物件的類是時候;

(2)當乙個類希望由它的子類來指定它所建立的物件的時候;

優點:(1)良好的封裝性,結構清晰;

(2)方便擴充套件;

(3)遮蔽了產品類是實現,只需要關心抽象產品類的介面;

缺點:如果只建立一種型別的concreteproduct,必須為creator類建立乙個具體的子類

實現:(1)工廠方法creator可以通過傳入引數建立多種不同的product,而不需要多個concretecreator子類(即所謂的簡單工廠模式);

(2)在c++中,可以提供乙個creator的模版子類,所以product類作為模版引數,來避免建立多個creator子類;

(3)工廠類可以使用快取模式,儲存使用完畢不銷毀的產品,待下次再使用;

設計模式 工廠方法模式

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