C++策略模式

来源:互联网 发布:大数据技术架构详解 编辑:程序博客网 时间:2024/06/04 01:01
定义算法家族,分别封装起来,让它们可以相互替换,让算法变化不会影响到用户。策略模式与简单工厂模式基本相同,但简单工厂只能解决对象创建问题,对于经常变动的算法应使用策略模式。

代码实现:

#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;}


2 0
原创粉丝点击