最近在學習設計模式,記錄下自己的理解。
工廠方法模式標準定義:define an inte***ce for creating an object,but let subclasses decide which class to instantiate.factory method lets a class defer instantiation to subclasses.(定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。)
工廠方法模式的通用類圖:
在工廠方法模式中,抽象產品類product負責定義產品的共性,實現對事物最抽象的定義;creator為抽象建立類,也就是抽象工廠,具體如何建立產品類是由具體的實現工廠concretecreator完成的。
下面來看乙個比較實用的通用原始碼。
抽象產品類**如下:
/*
* 抽象產品類
*/public abstract class product
// 抽象方法
public abstract void method2();
}
具體的產品類可以有多個,都繼承於抽象產品類,其源**如下:
public class concreteproduct1 extends product
}public class concreteproduct2 extends product
}
抽象工廠類負責定義產品物件的產生,源**如下:
/*
* 抽象工廠
*/public abstract class creator
具體如何產生乙個產品的物件,是由具體的工廠類實現的,如**:
/*
* 工廠實現類
*/public class concretecreator extends creator catch (exception e)
return product;}}
場景類的呼叫方法如下:
public class client
}
工廠方法使乙個類的例項化延遲到其子類。**結構清晰,有良好的封裝性,呼叫者不需要知道物件建立的具體過程,降低模組間的耦合。具有良好的擴充套件性,在增加產品類的情況下,只要適當修改具體的工廠類或擴充套件乙個工廠類。 設計模式 工廠方法模式
一 工廠方法 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...