Друзья, которые использовали макросы, должны знать, что с помощью макросов можно привязать несколько навыков к одной клавише. Например, если навык, занимающий первое место, имеет перезарядку, этот навык будет пропущен и будут применены последующие навыки. Помню, когда я играл в ДК, сражаясь с монстрами, я просто использовал одну кнопку и продолжал ее нажимать. В методах doGet и doPost сервлета мы обычно отправляем запрос doGet в doPost для обработки. Это также модель цепочки ответственности.
Здесь есть макрос, связывающий два навыка «Ледяной холодный пульс» и «Ледяная стрела». Пример программы следующий:
ответственность за пакет;/** * Интерфейс навыков DOC, навыки, которые будут связаны, должны реализовывать этот интерфейс* */public интерфейс ISkill { public void castSkill();}ответственность за пакет;import java.util.ArrayList;import java.util List; /** * Макрос-класс DOC, используемый для связывания нескольких навыков вместе для выполнения кастинга одним щелчком мыши* */public class Macro { /** * DOC-коллекция нескольких навыков, связанных вместе*/ public List<ISkill > навыки = new ArrayList<ISkill>(); /** * * DOC применяет навыки в порядке привязки */ public void castSkill() { for (int i = 0; i <skills.size(); i++) {kills.get( i).castSkill(); } } /** * навык привязки DOC * * @param навык */ public voidbindSkill(ISkillkill) {skills.add(skill);/** * DOC Навык Ice Arrow, без времени на охлаждение* */public class IceArrow реализует ISkill { @Override public void castSkill() { System.out.println("Cast--"Ice Arrow"); }}ответственность за пакет;/* * * DOC Навык Ice-Blooded Cold Pulse, время охлаждения 2 минуты*/публичный класс IceBloodFast реализует ISkill { @Override public void castSkill() { // Это можно использовать, чтобы определить, остывает ли навык. System.out.println("Cast--"Ice-Blooded Cold Pulse") здесь опущена; }}
Тестовый класс:
ответственность за пакет; public class Main { public static void main(String[] args) { Макрос = новый Macro.bindSkill(new IceBloodFast()); }}
Результаты испытаний:
Теперь произносим заклинание: «Ледяная кровь, холодный пульс», «Ледяная стрела».
Краткое описание: Модель цепочки ответственности в основном используется, когда запрос может иметь несколько объектов для обработки.