设计模式之策略模式

来源:互联网 发布:c指针编程之道购买 编辑:程序博客网 时间:2024/06/01 10:39

最近在出设计模式,为什么会去学这个玩意呢?因为设计模式确实能给我们带来很多意想不到的好处,主要体现在有很好的弹性,易于维护和变更需求。以前写程序只顾着解决问题,从不考虑程序的扩展性,但是到了后期,为了适应更多的功能并且代码的重复度很高,让我苦不堪言。

虽然之前也意识到这些问题,都是自己瞎摸索设计,不知道还有设计模式这一套,所以走了很多弯路。现在看了一点设计模式,之前写程序真的太费劲了,一个好的结构体系,运用一个或几个设计模式去架构咱们的程序,会让编程变得特别简单。

学习设计模式不仅在此,还可以让我们对更深的去理解很多框架和Java API。网上也有很多博客关于模式设计的,但是不是自己的东西看着有点费劲,不嫩把自己学习的心得记录下来,以至于以后用到的时候可以随时拿过来用,所以写此文,方便自己以后使用,以及给后来者一些提示,共同学习,共同进步。话不多说,今天说一些对 策略模式的一些小小的理解。

策略模式定义算法族,分别分装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

所谓的策略模式,就是把用户所需要用到的策略封装起来,动态的去更改策略,例如下面的例子。

一家大型超市的需要在上面接近过期的时候对商品进行促销,也就是打折。你可能觉得,在算价格的时候直接乘上折扣就可以,关键是超市不止一种折扣方式,还可能在节假日促销,每种商品的促销价格不一样等等复杂的方式,这个时候咱们的策略模式就可以排上用场了。

还有就是我们经常玩游戏,游戏里面的角色有很多,并且角色可以使用很多武器,但是每个游戏角色一次只能使用一种武器,但在游戏过程中角色可以更换武器。这个时候咱们就可以使用策略模式了,下面来看看这个例子的类图:


看到这个类图是不是觉的这个设计模式很棒。按照类图程序应该不难写,程序代码就不贴了,如果有需要请联系我,邮箱:leeh0815@qq.com。


原创粉丝点击