設計模式學習系列5 工廠模式

2021-09-06 12:36:25 字數 1734 閱讀 7833

1 前言

先介紹一下物件導向設計的原則:

(1)ocp(開放關閉原則):軟體對擴充套件是開放的 ,對修改是關閉的,核心思想:對抽象程式設計,不對實現程式設計

(2)dip(依賴倒轉原則):依賴於抽象,而不依賴實現

(3)lsp(李氏替換原則):子類都可以替換父類

2 工廠模式構成

uml圖中,所有具體的工廠都從抽象介面繼承,所有產品也由產品基類繼承,並且每種產品工廠實現一種產品,這樣的話,在軟體中增加一種新功能就需要增減乙個產品的子類,增加乙個工廠的子類,然後在客戶端中判斷是否使用,這樣程式的擴充套件不影響原先的功能,完全能夠滿足ocp原則。使用工廠模式後,相應的判斷轉移到客戶手中,並沒有因此減少哈

2 工廠模式構實現運算類

#include using

namespace std;

enum operatortype

; //運算類基類

class operation

operation(const

double& a , const

double& b)

virtual ~operation(){}

void setnuma(const

double& a)

void setnumb(const

double& b)

virtual

double getresult()

}; //加法類

class operationadd: public operation

};//減法類

class operationsub: public operation

};

//乘法

class operationmul: public operation

};

//除法

class operationdiv: public operation

return numa / numb ;

}};

//工廠類介面

class ifactory

;

}; //加法工廠類

class addfactory:public ifactory

}; class subfactory:public ifactory

}; class mulfactory:public ifactory

}; class divfactory:public ifactory

}; //******************************=

int main()

3 工廠模式中增加新的功能(1)增加乙個新的運算類

class operationnew: public operation

};

(2)增加乙個工廠類

class newfactory:public ifactory

};

4 總結細雨淅淅 標籤:

設計模式

設計模式學習系列5 工廠模式

1 前言 先介紹一下物件導向設計的原則 1 ocp 開放關閉原則 軟體對擴充套件是開放的 對修改是關閉的,核心思想 對抽象程式設計,不對實現程式設計 2 dip 依賴倒轉原則 依賴於抽象,而不依賴實現 3 lsp 李氏替換原則 子類都可以替換父類 2 工廠模式構成 uml圖中,所有具體的工廠都從抽象...

設計模式 學習筆記5 工廠模式

本文出自 在簡單工廠模式的 factory,你確實可以建立比薩,但是其他部分 烘烤,切片等可能不同的店會有不同的差異。如果我們要在其他地方開比薩店,比如在北京開比薩店,那麼北京的製作比薩是不一樣風格的,使用這個類的話,可能就要修改 所以把製作比薩的 綁在pizzastore裡,這樣做沒有彈性。那麼要...

設計模式 工廠系列

簡單工廠 特點 工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,客戶端中避免了和具體產品的依賴。缺點 當要繼續增加運算類時,需要在工廠類中增加相應的邏輯。違背了開放 封閉原則。工廠方法 特點 對每乙個產品都有對應的工廠,當增加新產品 在這裡就是增加運算類 時,只需要增加運算類和...