设计模式心得(二) 策略模式

这次说说的设计模式是策略模式,什么是策略模式呢。它定义了算法家族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化,不会影响到使用算法的客户。下面用一幅UML图来说明一下这个关系,这个图属于一个比较典型的策略模式。




这个图我们怎么来理解呢?整个对于Strategy接口(算法)的调用,都是基于Context类来使用,Context类中声明一个Strategy接口的的实现类,这个实现类里面对自己特殊的算法有自己的解释。然后,我们就可以很简单的明白其中的原理了,客户端在调用的时候只需要实例化一个Context对象,在其构造函数里面传入需要的算法即可。这样当需求增加的时候,只需要继续添加Strategy接口的实现类即可,客户端都不需要做任何的修改。


应用实例的说明,我们经常的进行购物,这时候其实就对这种策略模式有很大的需求,因为销售策略会经常的变更和增加,比如增加积分兑换、会员打折、换购商品等等,而且不管是网购还是商场,销售策略总是不断的修改中,这样如果我们在客户端进行条件的判断,就会引起对于客户端的不断修改,这个并不是我们所希望的,所以在策略模式的基础上,添加上简单工厂模式,对于Context类的使用也使用一个Factory来生成,这样在客户端就不需要做任何的修改了。


其实对于策略模式,更多的如何的将业务抽象出方法接口(最好使用方法再能抽象出抽象类)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值