設計模式 工廠方法

2021-10-04 12:25:14 字數 2283 閱讀 2408

定義乙個建立物件的介面,讓子類決定去例項化哪個類。工廠方法使得乙個類的例項化延遲到子類。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。

結構1:提供了建立物件的介面

//抽象產品類

class

product

;#ifdef implementation1

//多種產品繼承抽象產品類

class

myproduct

:public product

;class

yourproduct

:public product

;class

theirproduct

:public product

;typedef

int productid;

const

int mine =1;

const

int yours =2;

const

int theirs =2;

/**/

//生產產品抽象類

class

creator;/*

*///根據類的特徵提供生產產品的情況

product* creator::create (productid id)

/**/

class

mycreator

:public creator ;/*

*///具體生產者提供具體的生產

product* mycreator::create (productid id)

計算器的設計

1.簡單工廠

//用來生產運算子類

class

operationfactory

return moperation}}

//客戶端的**:

operation oper=null;

oper = operationfactory.

createoperation

("+");

oper.number1 =

100;

oper.number2 =

200;

double result = oper.

getresult()

;

2.工廠方法

//先建立乙個工廠介面:

inte***ce ifactory

//然後,加減乘除各建立乙個具體工廠來實現這個介面:

class

addfactory

:ifactory

}class

subfactory

:ifactory

}class

mulfactory

:ifactory

}class

divfactory

:ifactory

}//客戶端的實現**:

ifactory ope***ctory =

newaddfactory()

;operation oper = ope***ctory.

createoperation()

;oper.number1 =

100;

oper.number2 =

200;

double result = oper.

getresult()

;

參考

設計模式 工廠方法模式 factory method

設計模式(c++)筆記之一(factory method工廠方法模式)

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...

設計模式 工廠方法

設計模式 工廠方法 工廠方法與抽象方法 面向介面程式設計可以提高 的靈活性 可以橫向擴充 切忌不能使用面向實現的程式設計,這樣做不便於以後業務的擴充和 的靈活性。工廠方法 就是把 new class 的過程交給 factory來做.構造類的細節不需要我們知道。比如 構造乙個 list 我們可以這樣寫...

設計模式 工廠方法

簡單工廠針對擴充套件時需要修改 違反了ocp 開閉原則 而工廠方法模式在擴充套件時,更滿足ocp。當然比較簡單工廠模式,工廠方法模式有一組實現了相同介面的工廠類,而簡單工廠模式就只有乙個工廠類。和簡單工廠方法一樣,還是以生成汽車為例子。定義要生成的物件的公共介面 public inte ce car...