軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性:封裝、繼承、多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c++寫了個小例子,加深一下理解。主要參考《大話設計模式》和《設計模式:可復用物件導向軟體的基礎》兩本書。本文介紹工廠模式的實現。
工廠模式屬於建立型模式,大致可以分為三類,簡單工廠模式、工廠方法模式、抽象工廠模式。聽上去差不多,都是工廠模式。下面乙個個介紹,首先介紹簡單工廠模式,它的主要特點是需要在工廠類中做判斷,從而創造相應的產品。當增加新的產品時,就需要修改工廠類。有點抽象,舉個例子就明白了。有一家生產處理器核的廠家,它只有乙個工廠,能夠生產兩種型號的處理器核。客戶需要什麼樣的處理器核,一定要顯示地告訴生產工廠。下面給出一種實現方案。
[cpp]view plain
copy
?
enum ctype ;
class singlecore
;
//單核a
class singlecorea: public singlecore
;
//單核b
class singlecoreb: public singlecore
;
//唯一的工廠,可以生產兩種型號的處理器核,在內部判斷
class factory
};
enum ctype ;
class singlecore
; //單核a
class singlecorea: public singlecore
;
//單核a
class singlecorea: public singlecore
;
//單核b
class singlecoreb: public singlecore
;
class factory
;
//生產a核的工廠
class factorya: public factory
};
//生產b核的工廠
class factoryb: public factory
};
class singlecore
; //單核a
class singlecorea: public singlecore
;
class singlecorea: public singlecore
;
class singlecoreb :public singlecore
;
//多核
class multicore
;
class multicorea : public multicore
;
class multicoreb : public multicore
;
//工廠
class corefactory
;
//工廠a,專門用來生產a型號的處理器
class factorya :public corefactory
multicore* createmulticore()
};
//工廠b,專門用來生產b型號的處理器
class factoryb : public corefactory
multicore* createmulticore()
};
//單核
class singlecore
; class singlecorea: public singlecore
{ public:
void show() { cout<
簡單工廠模式的uml圖:
工廠方法的uml圖:
抽象工廠模式的uml圖:
設計模式C 實現 工廠模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
設計模式C 實現(1) 工廠模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
設計模式C 實現(1) 工廠模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...