設計模式8 工廠方法模式

2021-10-23 22:45:18 字數 2097 閱讀 1262

(1)簡單工廠模式的侷限:簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。但每次擴充套件功能需要修改原有類,不但對擴充套件開放了還對修改也開放了,違背了開放封閉原則。

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

(3)工廠方法降低了客戶程式與產品物件的耦合,工廠方法模式是簡單工廠模式的進一步抽象和推廣,由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,但缺點是每增加乙個產品,就需要加乙個產品類的工廠,增加了額外的開發量。

//operation 運算類

class

operation

double

getnumberb()

void

setnumbera

(double var)

void

setnumberb

(double var)

virtual

double

getresult()

private

:double numbera;

double numberb;};

class

operationadd

:public operation

;class

operationsub

:public operation

;class

operationmul

:public operation

;class

operationdiv

:public operation

;

//工廠類

class

ifactory

;class

addfactor

:public ifactory};

class

subfactor

:public ifactory};

class

mulfactor

:public ifactory};

class

divfactor

:public ifactory

};

//客戶端**

void widget::

cal()if

(mycal.varb==

0&&ui-

>symbolbox-

>

currentindex()

==3) operation *myoperator=myfactory-

>

createoperation()

; myoperator-

>

setnumbera

(mycal.vara)

; myoperator-

>

setnumberb

(mycal.varb)

; mycal.varans=myoperator-

>

getresult()

; ui-

>outedit-

>

settext

(qstring::

number

(mycal.varans));

delete myfactory;

delete myoperator;

}catch

(int i)

}

//介面資料相關結構體

長期從事程式設計相關研究,涉及qt、機械臂、輪式機械人、四足機械人的建模及**,可共同**程式設計相關問題,可指導課程設計及畢業設計,詳詢:qq:

2963325158

大話設計模式 工廠方法模式 8

工廠方法模式 工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個工廠。工廠方法使乙個類的例項化延遲到其子類.簡單工廠與工廠方法 1.簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體...

大話設計模式 工廠方法模式 8

工廠方法模式 工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個工廠。工廠方法使乙個類的例項化延遲到其子類.簡單工廠與工廠方法 1.簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體...

8 工廠方法模式

簡單工廠和工廠方法!簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。簡單講,簡單工廠 計算器 如果需要擴充套件計算器的功能新增類,然後在工廠中加上else if 這樣的判斷,工廠方法模式相當與把工廠也替換成抽象的...