简单工厂模式(大话设计模式C++实现)
类图
代码如下
#include <iostream>
#include <string>
using namespace std;
class Operation{
public:
virtual double getResult()=0;
void SetNumberA(double value){
NumberA = value;
}
double GetNumberA(){
return NumberA;
}
void SetNumberB(double value){
NumberB = value;
}
double GetNumberB(){
return NumberB;
}
protected:
double NumberA;
double NumberB;
};
class addOperation:public Operation{
public:
double getResult(){
return NumberA+NumberB;
}
};
class subOperation:public Operation{
public:
double getResult(){
return NumberA-NumberB;
}
};
class mulOperation:public Operation{
public:
double getResult(){
return NumberA*NumberB;
}
};
class divOperation:public Operation{
public:
double getResult(){
return NumberA/NumberB;
}
};
class simpleFatory{
public:
Operation* createOperation(string type){
if(type=="+"){
return new addOperation;
}
else if(type=="-"){
return new subOperation;
}
else if(type=="*"){
return new mulOperation;
}
else if(type=="/"){
return new divOperation;
}
return NULL;
}
};
int main(){
simpleFatory* factory=new simpleFatory;
Operation* operation=factory->createOperation("+");
if(operation==NULL){
return -1;
}
operation->SetNumberA(16);
operation->SetNumberB(8);
std::cout<<operation->getResult()<<std::endl;
}