java

位置:IT落伍者 >> java >> 浏览文章

java 设计模式之责任链模式


发布日期:2023年12月16日
 
java 设计模式之责任链模式
不知道大家都写过宏没有就是一个键绑定多个技能如果排在前面的技能有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()

}}

测试结果

正在施放》冰血冷脉

施放》寒冰箭               

上一篇:实战Java多线程编程精要之限制优先级

下一篇:JavaMe开发:也说MVC设计模式