C++簡單工廠模式

主要用於創建對象。新添加類時不會影響以前的系統代碼。原理是創建一個工廠類,根據輸入條件在其內部產生不同的類,再根據不同類的virtual函數得到不同結果。

代碼實現:

#include<iostream> using namespace std;  //基類 class COperation { 	public: 		int m_nFirst; 		int m_nSecond; 		virtual double GetResult() 		{ 			double dResult=0; 			return dResult; 		} }; //加法 class AddOperation:public COperation { 	public: 		virtual double GetResult() 		{ 			return m_nFirst+m_nSecond; 		} }; //減法 class SubOperation:public COperation { 	public: 		virtual double GetResult() 		{ 			return m_nFirst-m_nSecond; 		} }; //工廠類 class CCalculatorFactory { 	public: 		static COperation* Create(char cOperator); };  COperation* CCalculatorFactory::Create(char cOperator) { 	COperation* oper; 	switch(cOperator) 	{ 		case'+': 			oper=new AddOperation(); 			break; 		case'-': 			oper=new SubOperation(); 			break; 		default: 			oper=new AddOperation(); 			break; 	} 	return oper; } //客戶端 int main() { 	int a,b; 	cout<<"請輸入兩個操作數,空格分開:"<<endl; 	cin>>a>>b; 	COperation* op=CCalculatorFactory::Create('-'); 	op->m_nFirst=a; 	op->m_nSecond=b; 	cout<<op->GetResult()<<endl; 	 	return 0; } 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章