1 前言
先介紹一下物件導向設計的原則:
(1)ocp(開放關閉原則):軟體對擴充套件是開放的 ,對修改是關閉的,核心思想:對抽象程式設計,不對實現程式設計
(2)dip(依賴倒轉原則):依賴於抽象,而不依賴實現
(3)lsp(李氏替換原則):子類都可以替換父類
2 工廠模式構成
uml圖中,所有具體的工廠都從抽象介面繼承,所有產品也由產品基類繼承,並且每種產品工廠實現一種產品,這樣的話,在軟體中增加一種新功能就需要增減乙個產品的子類,增加乙個工廠的子類,然後在客戶端中判斷是否使用,這樣程式的擴充套件不影響原先的功能,完全能夠滿足ocp原則。使用工廠模式後,相應的判斷轉移到客戶手中,並沒有因此減少哈
2 工廠模式構實現運算類
#include using3 工廠模式中增加新的功能(1)增加乙個新的運算類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()
class operationnew: public operation(2)增加乙個工廠類};
class newfactory:public ifactory4 總結細雨淅淅 標籤: 設計模式};
設計模式學習系列5 工廠模式
1 前言 先介紹一下物件導向設計的原則 1 ocp 開放關閉原則 軟體對擴充套件是開放的 對修改是關閉的,核心思想 對抽象程式設計,不對實現程式設計 2 dip 依賴倒轉原則 依賴於抽象,而不依賴實現 3 lsp 李氏替換原則 子類都可以替換父類 2 工廠模式構成 uml圖中,所有具體的工廠都從抽象...
設計模式 學習筆記5 工廠模式
本文出自 在簡單工廠模式的 factory,你確實可以建立比薩,但是其他部分 烘烤,切片等可能不同的店會有不同的差異。如果我們要在其他地方開比薩店,比如在北京開比薩店,那麼北京的製作比薩是不一樣風格的,使用這個類的話,可能就要修改 所以把製作比薩的 綁在pizzastore裡,這樣做沒有彈性。那麼要...
設計模式 工廠系列
簡單工廠 特點 工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,客戶端中避免了和具體產品的依賴。缺點 當要繼續增加運算類時,需要在工廠類中增加相應的邏輯。違背了開放 封閉原則。工廠方法 特點 對每乙個產品都有對應的工廠,當增加新產品 在這裡就是增加運算類 時,只需要增加運算類和...