设计模式学习1 简单工厂模式
工作半年了,开始学习设计模式和算法,有时间,至少我所在部门基本不加班,不过有时候很难打败懒惰...
第一个设计模式:简单工厂模式。
简单工厂模式可能是最经济实惠的一种设计模式了。
写下来做个记录吧。
class Cal
{
public:
virtual double getResult()
{
return 0;
}
void setPara(double paraA,double paraB)
{
parameterA = paraA;
parameterB = paraB;
}
protected:
double parameterA;
double parameterB;
};
class Plus:public Cal
{
public:
Plus(){}
double getResult()
{
return parameterA + parameterB;
}
};
class Minus:public Cal
{
public:
Minus(){}
double getResult()
{
return parameterA - parameterB;
}
};
class Factory
{
public:
Cal * createCal(const char opt)
{
switch (opt)
{
case '+':{return new Plus();break;}
case '-':{return new Minus();break;}
default:{cout<<"wrong input"<<endl;return NULL;}
}
}
};
void main()
{
double paraA = 5,paraB=43,result = 0;
Cal *cal = NULL;
Factory factory;
cal = factory.createCal('-');
cal->setPara(paraA,paraB);
result = cal->getResult();
cout<<result<<endl;
}
浙公网安备 33010602011771号