Les amis qui ont utilisé des macros doivent savoir que l'utilisation de macros peut 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 Pulse » et « Ice Arrow ». L'exemple de programme est le suivant :
responsabilité du package;/** * Interface de compétences DOC, les compétences à lier doivent implémenter cette interface* */public interface ISkill { public void castSkill();}responsabilité du package;import java.util.ArrayList;import java.util List; /** * Classe de macro DOC, utilisée pour lier plusieurs compétences ensemble pour réaliser un casting en un clic* */public class Macro { /** * Collection DOC de plusieurs compétences liées ensemble*/ public List<ISkill > skills = new ArrayList<ISkill>(); /** * * DOC lance les compétences dans l'ordre de liaison. */ public void castSkill() { for (int i = 0; i < skills.size(); i++) { skills.get( i).castSkill(); } } /** * Compétence de liaison DOC. * * @param skills */ public void bindSkill(ISkill skills) { skills.add(skill);/** * Compétence DOC Ice Arrow, pas de temps de refroidissement* */public class IceArrow implémente ISkill { @Override public void castSkill() { System.out.println("Cast--"Ice Arrow"); }}responsabilité du package;/* * * Compétence DOC Ice-Blooded Cold Pulse, temps de refroidissement 2 minutes*/classe publique IceBloodFast implémente ISkill { @Override public void castSkill() { // Ceci peut être utilisé pour déterminer si la compétence est en train de refroidir. System.out.println("Cast--"Ice-Blooded Cold Pulse") est omis ici ; }}
Classe d'essai :
responsabilité du package ; public class Main { public static void main(String[] args) { Macro macro = new macro.bindSkill(new IceBloodFast()); ); }}
Résultats des tests :
Lancement en cours--"Casting d'impulsions froides au sang glacé--"Flèche de glace
Résumé : Le modèle de chaîne de responsabilité est principalement utilisé lorsqu'une demande peut avoir plusieurs objets à traiter.