Freunde, die Makros verwendet haben, sollten wissen, dass die Verwendung von Makros mehrere Fähigkeiten an eine Taste binden kann. Wenn zum Beispiel die an erster Stelle stehende Fertigkeit eine CD hat, wird diese Fertigkeit übersprungen und die nachfolgenden Fertigkeiten werden ausgeführt. Ich erinnere mich, als ich DK spielte und gegen Monster kämpfte, benutzte ich einfach einen Knopf und drückte ihn einfach weiter. In den Methoden doGet und doPost im Servlet senden wir normalerweise die doGet-Anfrage zur Verarbeitung an doPost. Dies ist auch ein Chain-of-Responsibility-Modell.
Hier gibt es ein Makro, das die beiden Fähigkeiten „Ice-Blooded Cold Pulse“ und „Ice Arrow“ verbindet. Das Programmbeispiel lautet wie folgt:
Paketverantwortung;/** * DOC-Skill-Schnittstelle, zu bindende Skills müssen diese Schnittstelle implementieren* */public interface ISkill { public void castSkill();}packageResponsibility;import java.util.ArrayList;import java.util List; /** * DOC-Makroklasse, wird verwendet, um mehrere Fertigkeiten miteinander zu verknüpfen, um ein Casting mit einem Klick zu erreichen* */public class Macro { /** * DOC-Sammlung mehrerer miteinander verknüpfter Fertigkeiten*/ public List<ISkill > skills = new ArrayList<ISkill>(); /** * * DOC wandelt Fertigkeiten in der Bindungsreihenfolge um */ public void castSkill() { for (int i = 0; i < skills.size(); i++) { skills.get( i).castSkill(); } } /** * DOC-Bindungsskill */ public void bindSkill(ISkill skills) { skills.add(skill }}package Responsibility;/** * DOC-Eispfeil-Fertigkeit, keine Abkühlzeit* */public class IceArrow implementiert ISkill { @Override public void castSkill() { System.out.println("Cast--"Ice Arrow"); }}Paketverantwortung;/* * * DOC Ice-Blooded Cold Pulse-Fähigkeit, Abkühlzeit 2 Minuten*/öffentliche Klasse IceBloodFast implementiert ISkill { @Override public void castSkill() { // Dies kann verwendet werden, um festzustellen, ob die Fertigkeit abkühlt. System.out.println("Cast--"Ice-Blooded Cold Pulse") wird hier weggelassen; }}
Testklasse:
Paketverantwortung; öffentliche Klasse Main { public static void main(String[] args) { Macro Macro = new Macro.bindSkill(new Macro.bindSkill(new Macro.castSkill); ); }}
Testergebnisse:
Jetzt wirft er: „Ice-bloed cold pulse casting“ – „Ice Arrow“.
Zusammenfassung: Das Chain-of-Responsibility-Modell wird hauptsächlich verwendet, wenn eine Anfrage mehrere zu verarbeitende Objekte haben kann.