策略模式
来源:互联网 发布:网络性与爱 第一季 编辑:程序博客网 时间:2024/05/14 02:45
//策略基类class COperation{public:intm_nFirst;intm_nSecond;virtualdoubleGetResult(){doubledResult=0;returndResult;}};//策略具体类—加法类class AddOperation:publicCOperation{public:AddOperation(inta,intb){m_nFirst=a;m_nSecond=b;}virtualdoubleGetResult(){returnm_nFirst+m_nSecond;}};class Context{private:COperation*op;public:Context(COperation*temp){op=temp;}doubleGetResult(){returnop->GetResult();}};//客户端int main(){int a,b;char c;cin>>a>>b;cout<<”请输入运算符:;cin>>c;switch(c){case ‘+’:Context*context=newContext(newAddOperation(a,b));cout<<context->GetResult()<<endl;break;default:break;}return 0;}
</pre><pre name="code" class="cpp">
定义算法家族,分别封装起来,让它们之间可以互相替换,让算法变化,不会影响 到用户
GOOD:适合类中的成员以方法为主,算法经常变动;简化了单元测试(因为每个
算法都有自己的类,可以通过自己的接口单独测试。 策略模式和简单工厂基本相同,但简单工厂模式只能解决对象创建问题,对于经常
变动的算法应使用策略模式。
BUG:客户端要做出判断 。
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- Maven常用命令总结
- 【CF】E. Anya and Cubes(双向DFS)
- 安装mongodb
- ExpandableListView吐槽系列(一) -> 设置自定义groupIndicator
- 开锁魔法II 哈尔滨理工大学第五届ACM程序设计竞赛
- 策略模式
- High weight hardwood film faced plywood
- IOS之CoreData初识
- 远程链接mysql :1130
- Combination Sum II--LeetCode
- 最简单的基于librtmp的示例:接收(RTMP保存为FLV)
- 利用systeminfo命令查找可用的windows提权EXP
- java之IO
- HTTPS与SSL(一)