设计模式学习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;
}

  


  

原文地址:https://www.cnblogs.com/liujin2012/p/2847697.html