策略模式

来源:互联网 发布:扫书软件 编辑:程序博客网 时间:2024/06/10 22:00

定义

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

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

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

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

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

原创粉丝点击