不知道大家都写过宏没有
就是一个键绑定多个技能
如果排在前面的技能有CD
则跳过此技能
会执行之后的技能
记得曾经玩DK
打怪的时候
就是用一个键
一直按就行了
在servlet里的doGet和doPost方法
我们一把都把doGet请求发动到doPost里来处理
这也是一种责任链的模式
这里有个宏绑定了 冰血冷脉和寒冰箭两个技能
package responsibility;/** * DOC 技能接口要绑定的技能都要实现这个接口 * */public interface ISkill { public void castSkill()}
package responsibility;import javautilArrayList;import javautilList;/** * DOC 宏类用来把多个技能绑在一起实现一键施放 * */public class Macro { /** * DOC 多个技能绑在一起的集合 */ public List<ISkill> skills = new ArrayList<ISkill>() /** * * DOC 按照绑定顺序施放技能 */ public void castSkill() { for (int i = ; i < skillssize() i++) { skillsget(i)castSkill() } } /** * DOC 绑定技能 * * @param skill */ public void bindSkill(ISkill skill) { skillsadd(skill) }}
package responsibility;/** * DOC 寒冰箭技能无冷却时间 * */public class IceArrow implements ISkill { @Override public void castSkill() { Systemoutprintln(施放》寒冰箭) }}
package responsibility;/** * DOC 冰血冷脉技能冷却时间分钟 */public class IceBloodFast implements ISkill { @Override public void castSkill() { // 这里可以用来判断技能是否在冷却当中这里略去了 Systemoutprintln(施放》冰血冷脉) }}
测试类
package responsibility;public class Main
{ public static void main(String[] args)
{ Macro macro = new Macro()
macrobindSkill(new IceBloodFast())
macrobindSkill(new IceArrow())
macrocastSkill()
}}
测试结果
正在施放》冰血冷脉
施放》寒冰箭