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

  


  

posted on 2013-01-06 14:49  程序员中的战斗机  阅读(155)  评论(0编辑  收藏  举报

导航