1.策略模式-Strategy

[b]策略模式[/b]
是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。
策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。

一句话来形容:准备一组算法,并将每一个算法封装起来,使得他们可以互换


[b]策略模式的结构[/b]
策略模式涉及到三个角色:
[list]
[*]环境角色:持有一个Strategy类(策略类)的引用
[*]抽象策略角色:策略类,通常由一个接口或者抽象类实现
[*]具体策略角色:包装了相关的算法和行为
[/list]


[b]《三国演义》中的故事[/b]
诸葛亮的精囊妙计三条妙计
走乔国老的后门,求孙国太放人,请孙夫人退兵
赵云按计行事
环境角色:赵云由他来决定选择策略
抽象策略角色:(接口)精囊妙计按计行事(抽象方法)
具体策略角色:三条妙计(单独使用的)


[b]例子:一个策略模式的加减乘除[/b]
抽象策略角色: (精囊妙计) Operation抽象类(oper抽象方法)
具体策略角色: (三条妙计) 计算乘积,计算除法,计算加法,计算减法
环境角色: (赵云) 有一个策略类( Operation )的引用


[b]策略模式的优缺点:[/b]
[b]优点:[/b]
1.提供了管理相关的算法族的办法。
2.提供了可以替换继承关系的办法。
3.避免使用多重条件转移语句

[b]缺点:[/b]
1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
2.造成很多的策略类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值