首页 > 代码库 > C++策略模式
C++策略模式
定义算法家族,分别封装起来,让它们可以相互替换,让算法变化不会影响到用户。策略模式与简单工厂模式基本相同,但简单工厂只能解决对象创建问题,对于经常变动的算法应使用策略模式。
代码实现:
#include<iostream> using namespace std; //策略基类 class COperation { public: int m_nFirst; int m_nSecond; virtual double GerResult() { double dResult=0; return dResult; } }; //策略具体类-加法类 class AddOperation:public COperation { public: AddOperation(int a,int b) { m_nFirst=a; m_nSecond=b; } virtual double GetResult() { return m_nFirst+m_nSecond; } }; class Context { private: COperation* op; public: Context(char cType) { switch(cType) { case'+': op=new AddOperation(3,8); break; default: op=new AddOperation(); break; } } double GetResult() { return op->GerResult(); } }; //客户端 int main() { int a,b; char c; cout<<"输入操作数吧,中间空格间隔:"<<endl; cin>>a>>b; Context* test=new Context('+'); cout<<test->GerResult()<<endl; return 0; }
C++策略模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。