策略模式

原创 2017年08月01日 19:26:50

定义

首先给出《Head First设计模式》中的定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。

这个定义还是很到位的,总的来说策略模式会让代码复用率很高,并且让代码更加规整简洁。

像我实例代码中使用了游戏中常用的一个场景,我定义了一个抽象类Person,其具有自己描述和攻击两种方法;我也定义了一个攻击方式接口,每一种具体的攻击方式都实现了该接口。并且在Person类中我提供了设置 攻击具体实现对象的方法,不同的Person子类,根据自己不同的需求设置不同攻击实现类,这样让 攻击实现类 的复用率很高,并且代码结构合理易读。
代码示例中我实现了两种角色,两个攻击方式,如果后期扩展新角色,但其攻击方式便,便可直接复用我的 攻击实现,这样会让后期代码维护变得简介。

该模式中使用接口在方法中做参数,用于接收任何其实现的类,这种方式很值得借鉴,并且工作中会经常使用这种设计方式。

这是我实例代码连接:
https://github.com/yangzhenkun/DesignPatternLearn/tree/master/src/main/java/com/yasin/DesignPatternLearn/StrategyPattern

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

策略模式demo

  • 2017年11月24日 09:54
  • 7KB
  • 下载

delphi xe7 下实现的策略模式例子

  • 2017年06月26日 14:36
  • 3.01MB
  • 下载

MultipartFile-使用策略模式实现可拓展文件分类上传

引子: 想起以前第一个项目的时候,常常使用apache的fileUploadutil,感觉效果很不好,又不容易实现一个上传的过程。 后来使用了spring提供的MultipartFile上传机制...
  • hayre
  • hayre
  • 2016年09月23日 14:42
  • 781

策略模式例子

  • 2015年03月24日 16:55
  • 8KB
  • 下载

策略模式Demo

  • 2017年01月08日 18:31
  • 6KB
  • 下载

在算法设计中使用策略模式

辛辛苦苦敲出来,觉得有用的留言啊; //鉴别出图像中还有给定颜色的所有像素;容忍度之内白色,否则黑色 #include #include #include #include using name...

HeadFirst策略模式

  • 2015年09月02日 11:09
  • 1.69MB
  • 下载

软件测试之策略模式

  • 2013年06月18日 08:25
  • 14KB
  • 下载

JAVA算法策略模式之商品打折 满x送x

场景:某超市收银台,营业员根据客户购买的商品和数量向客户收费. 问题:超市某段时间会有打折活动(例如打8折),满XXX元送XXX元活动,满XXX元送XXX积分活动等等. 算法类...
  • ghjzzhg
  • ghjzzhg
  • 2017年05月15日 16:42
  • 350
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:策略模式
举报原因:
原因补充:

(最多只允许输入30个字)