策略模式与工厂模式结合

GOOD:客户端只需访问Context类,而不用知道其它任何类信息,实现了低耦合。 //策略基类 class COperation { protected: int m_nFirst; int m_nSecond; public: virtual double GetResult() { return 0; } }; //策略加法类 class AddOperation : public COperation { public: AddOperation(int num1, int num2) { m_nFirst ...
2014-03-12 23:06 | 阅读 1506 次 | 评论 0 条

策略模式

定义算法家族,分别封装起来,让它们之间可以相互替换,让算法变化,不会影响到用户。 GOOD:适合类中的成员以方法为主,算法经常变动;简化了单元测试(因为每个算法都有自己的类,可以通过自己的接口单独测试)。 策略模式和简单工厂基本相同,但简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。 BUG:客户端要做出判断 //策略基类 class COperation { public: int m_nFirst; int m_nSecond; virtual double G...
2014-03-11 23:07 | 阅读 1219 次 | 评论 0 条

简单工厂模式

计算器的实现: 1)业务逻辑代码 /************************************************ Class: 运算类 Description: 各种运算的父类,提供公共接口 ************************************************/ class COperation { public: double m_nFirst; double m_nSecond; public: virtual double GetResult() { return 0; } ...
2014-02-06 22:47 | 阅读 1460 次 | 评论 0 条