Pour ceux qui ont utilisé des macros, sachez que vous pouvez utiliser des macros pour lier plusieurs compétences à une seule touche. Par exemple, si la compétence classée en premier possède un CD, cette compétence sera ignorée et les compétences suivantes seront exécutées. Je me souviens quand je jouais à DK, lorsque je combattais des monstres, j'utilisais juste un bouton et je continuais d'appuyer dessus. Dans les méthodes doGet et doPost du servlet, nous envoyons généralement la requête doGet à doPost pour traitement. Il s'agit également d'un modèle de chaîne de responsabilité.
Ici, il y a une macro qui lie les deux compétences "Ice-Blooded Cold Vein" et "Ice Arrow". L'exemple de programme est le suivant :
package responsibility; /** * DOC 技能接口,要绑定的技能都要实现这个接口 * */ public interface ISkill { public void castSkill(); } package responsibility; import java.util.ArrayList; import java.util.List; /** * DOC 宏类,用来把多个技能绑在一起,实现一键施放 * */ public class Macro { /** * DOC 多个技能绑在一起的集合 */ public List<ISkill> skills = new ArrayList<ISkill>(); /** * * DOC 按照绑定顺序施放技能. */ public void castSkill() { for (int i = 0; i < skills.size(); i++) { skills.get(i).castSkill(); } } /** * DOC 绑定技能. * * @param skill */ public void bindSkill(ISkill skill) { skills.add(skill); } } package responsibility; /** * DOC 寒冰箭技能,无冷却时间 * */ public class IceArrow implements ISkill { @Override public void castSkill() { System.out.println("施放--》寒冰箭"); } } package responsibility; /** * DOC 冰血冷脉技能,冷却时间2分钟 */ public class IceBloodFast implements ISkill { @Override public void castSkill() { // 这里可以用来判断技能是否在冷却当中,这里略去了 System.out.println("施放--》冰血冷脉"); } }
Classe de test :
package responsibility; public class Main { public static void main(String[] args) { Macro macro = new Macro(); macro.bindSkill(new IceBloodFast()); macro.bindSkill(new IceArrow()); macro.castSkill(); } }
Résultat du test :
正在施放--》冰血冷脉 施放--》寒冰箭
Résumé : Le modèle de chaîne de responsabilité est principalement utilisé pour une requête pouvant avoir plusieurs objets à traiter. situation.
Pour plus d'articles liés à l'introduction au modèle de chaîne de responsabilité des modèles de conception Java, veuillez faire attention au site Web PHP chinois !
Articles connexes :
Une introduction détaillée au code d'implémentation du modèle Mediator en Java
Modèle Mediator des modèles de conception Java
Introduction au mode proxy (Proxy mode) des modèles de conception Java