设计模式 -- 策略模式 + 简单工程模式(C++)
2012-07-27 11:22
295 查看
策略模式和简单工厂模式图,(基本一样)
![](http://my.csdn.net/uploads/201207/27/1343359586_8303.jpg)
类型:行为模式
定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。
策略模式和简单工厂模式区别就是:简单工厂模式是实现对象的多样性,而策略模式适合类中的成员以方法为主;简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。
class basicObject { public: virtual double GetResult() { double dResult=0; return dResult; } protected: int tempa; int tempb; }; class oneOperation : public basicObject { public: oneOperation(int a,int b) { tempa=a; tempb=b; } virtual double GetResult() { return (tempa * tempb) / 10; } }; class twoOperation : public basicObject { public: twoOperation(int a,int b) { tempa=a; tempb=b; } virtual double GetResult() { return (tempa * tempb - 300); } }; class Context { private: basicObject* obj; public: Context(int cType, int valueT) { switch (cType) { case 1: obj=new oneOperation(valueT, 8); break; case 2: default: obj=new twoOperation(valueT, 2); break; } } double GetResult() { return obj->GetResult(); } };
#include "classFile.h" #include "stdlib.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a = 500, b = 1; Context * test = new Context(b, a); cout << "value = " << test->GetResult() << endl; system("pause"); return 0;
相关文章推荐
- 【设计模式】简单工程模式和策略模式的区别
- HEAD_FIRST设计模式学习 ----策略模式 c++简单实现代码
- 设计模式——简单工厂+策略模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 设计模式之策略模式,C++实现
- C++设计模式3————(策略模式)
- 设计模式之策略模式(C++实现)
- 设计模式C++实现(2)——策略模式
- 设计模式解读 之策略模式(参照策略模式与简单工厂模式的对比)
- 设计模式C++版:第零式简单工厂
- c++设计模式之简单工厂模式
- C++设计模式--单例、策略模式
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- c++ 设计模式之简单的工厂模式
- 设计模式C++实现(2)——策略模式
- 我所理解的设计模式(C++实现)——策略模式(Strategy Pattern)
- C++设计模式:简单工厂类模式<初探>
- C++设计模式学习之策略模式
- C++ 设计模式 依赖倒置原则 简单示例
- 设计模式笔记——策略模式VS简单工厂模式