策略模式
来源:互联网 发布:扫书软件 编辑:程序博客网 时间:2024/06/10 22:00
定义
首先给出《Head First设计模式》中的定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。
这个定义还是很到位的,总的来说策略模式会让代码复用率很高,并且让代码更加规整简洁。
像我实例代码中使用了游戏中常用的一个场景,我定义了一个抽象类Person,其具有自己描述和攻击两种方法;我也定义了一个攻击方式接口,每一种具体的攻击方式都实现了该接口。并且在Person类中我提供了设置 攻击具体实现对象的方法,不同的Person子类,根据自己不同的需求设置不同攻击实现类,这样让 攻击实现类 的复用率很高,并且代码结构合理易读。
代码示例中我实现了两种角色,两个攻击方式,如果后期扩展新角色,但其攻击方式便,便可直接复用我的 攻击实现,这样会让后期代码维护变得简介。
该模式中使用接口在方法中做参数,用于接收任何其实现的类,这种方式很值得借鉴,并且工作中会经常使用这种设计方式。
这是我实例代码连接:
https://github.com/yangzhenkun/DesignPatternLearn/tree/master/src/main/java/com/yasin/DesignPatternLearn/StrategyPattern
阅读全文
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 华为OJ——24点游戏算法
- 【poj 1383】Labyrinth
- Unity3D--SQLite
- 二叉堆 操作
- FreeMarker之遍历
- 策略模式
- PKU1251 Jungle Roads (最小生成树+输入)
- HDU 6060 RXD and dividing
- js实现完美身份证号有效性验证--身份证算法
- Spring常见面试问题
- mysql SSL加密连接实战 --- PHP 语言SSL加密方式连接mysql
- Python爬虫学习纪要(四):正则表达式1
- hdu1257
- 1116. Come on! Let's C (20)