大话设计模式 --- 简单工厂模式

        说的是简单的二元数学运算的问题:加减乘除等。

        书里是用非C++语言描述的,不过我还是喜欢C++多一点,下面改成了C++版。

        操作基类:

        class Operation:

         {

            public:

              Operation(): m_numA (0), m_numB(0){}

              virtual double GetResult(){return 0;}

              void setOperationNum( double numA,double numB )

              {

                     m_numA = numA;

                     m_numB = numB;

              }

            private:

              double m_numA;

              double m_numB;

         };

 

        加法类:

        class OperationAdd: public Operation

        {

             public:

               virtual double GetResult()

              {

                    return m_numA + m_numB;

              }

        }

 

        类似实现 减法类 OperationSub   乘法类 OperationMul 等

 

        再实现运算工厂类:

        class OperationFactory:

        {

             public:

                 Operation * createOperate( const string& operate )

                 {

                        Operation* oper;

                        switch(operate )

                        {

                               case "+": oper = new OperationAdd();break;

                               case "-": oper = new OperationSub();break;

                               ... ...

                        }

                 }

        }

 

        实际应用:

        Operation*oper;

        OperationFactory factory;

        oper = factory.createOperate("+");

        oper->setOperationNum(2,3);

        double result = oper->GetResult();

        delete  oper;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值