设计模式总结之策略模式

设计模式之一策略模式(Strategy Pattern)

功能作用:策略模式主要是对算法的封装,把算法的责任和算法本身分割开。策略模式的做法是把一系列的算法封装到一些列的策略类里面,作为一个抽象策略类的子类,用一句话说就是:准备一组算法,并将每一个算法封装起来,使得它们可以互换。


策略模式主要是对一个类中多个类似功能的方法或一个方法中通过if...else条件判断语句来判断做法的优化,以上两种方法称之为硬编码,如需增加一中心的算法时,需要修改封装算法的源代码,更换算法也需要修改客户端的调用代码。


策略模式是定义一些列的算法,把每个算法封装起来,并且使他们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。


策略模式的优点可以消除一些if else语句;算法类统一继承一个接口或父类,有助于分析出这些算法中的公共功能;

策略模式的缺点时可能产生很多策略类。



实例:我们平时出行的方式选择有:自行车,步行,汽车,火车,飞机;传统的应编成在一个类中为每种方式封装一个方法,或者一个方法中通过if else 语句选择,这样违背了面向对象程序设计中的开放封闭原则。通过策略模式优化,建立一个公共的出行接口,每种出行方式封装一个类实现出行接口,当需要增加轮船出行方式时,不需要修改原有的出行方式代码即可实现扩展。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值