簡單工廠模式
前序:
請用一種面向對象的語言來實現一個計算器控制臺程序,要求輸入兩個數和運算符并得到結果
簡單工廠模式:
從設計模式的類型上來說,簡單工廠模式是屬于創建型模式,又叫做靜態工廠方法(StaticFactory Method)模式,但不屬于23種GOF設計模式之一。簡單工廠模式是由一個工廠對象決定創建出哪一種產品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。
實現方式(UML類圖):

實現代碼:
#include <stdio.h>
class Operation
{
public:
double NumberA;
double NumberB;
virtual double GetResult()
{
return 0;
}
};
class OperationAdd : public Operation
{
public:
virtual double GetResult()
{
return NumberA + NumberB;
}
};
class OperationSub : public Operation
{
public:
virtual double GetResult()
{
return NumberA - NumberB;
}
};
class OperationMul : public Operation
{
public:
virtual double GetResult()
{
return NumberA * NumberB;
}
};
class OperationDiv : public Operation
{
public:
virtual double GetResult()
{
if(NumberB == 0) return 0;
return NumberA / NumberB;
}
};
class OperationFactory
{
public:
static Operation* createOperate(char operate)
{
Operation* oper = 0;
switch(operate)
{
case '+':
oper = new OperationAdd();
break;
case '-':
oper = new OperationSub();
break;
case '*':
oper = new OperationMul();
break;
case '/':
oper = new OperationDiv();
break;
}
return oper;
}
};
int main()
{
Operation* oper = OperationFactory::createOperate('+');
oper->NumberA = 1;
oper->NumberB = 2;
printf("%f",oper->GetResult());
delete oper;
return 0;
}
運行結果:
3.0000
所有文件打包下載
posted on 2011-04-28 22:53
lwch 閱讀(1713)
評論(0) 編輯 收藏 引用 所屬分類:
設計模式