理解策略模式

策略模式

行为模式关注行为和算法的封装。
创造模式关注对象的创建,客户端程序无权通过new的方式申请内存,构建对象。创造者模式提供方法供客户端选择。

Context 为实际算法的调用者,Strategy为算法的统一对外接口,不同的算法对其有不同的实现。
Context只需依赖不同的算法,就可以通过统一的Startegy接口,来实现算法之间的调用。

Strategy通常使用抽象类来实现,抽出算法中公共的逻辑代码,避免代码重复

策略模式结构解析
  1. Context: 对策略进行二次封装,避免高层代码直接对策略逻辑进行调用。
  2. AbstractStrategy: 为环境类提供统一对外接口;对算法的公共逻辑进行封装,避免代码重复。
  3. StrategyA,StrategyB: 具体的策略,根据注入的不同进行切换。

Tips: 善用抽象类,模板模式来进行解耦,增加代码之间调用的灵活性。

策略模式优点
  1. 支持开放封闭原则,可以灵活的增加其他策略,也可以方便的修改某一个算法的逻辑。
  2. 避免多重判断条件,不利于后期维护。
策略模式缺点
  1. 必须暴露所有的策略,供客户端程序选择调用。程序的关联性太强。
  2. 代码量大量增加。

转载于:https://juejin.im/post/5a5edb6f518825734d14a4bd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值