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

實現(xiàn)代碼:
#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;
}
運行結(jié)果:
3.0000
所有文件打包下載