Los amigos que han usado macros deben saber que el uso de macros puede vincular múltiples habilidades a una tecla. Por ejemplo, si la habilidad clasificada en primer lugar tiene un CD, esta habilidad se omitirá y se ejecutarán las siguientes. Recuerdo que cuando jugaba a DK, cuando luchaba contra monstruos, solo usaba un botón y seguía presionándolo. En los métodos doGet y doPost del servlet, generalmente enviamos la solicitud doGet a doPost para su procesamiento. Este también es un modelo de cadena de responsabilidad.
Aquí, hay una macro que une las dos habilidades "Ice-Blooded Cold Pulse" y "Ice Arrow". El ejemplo del programa es el siguiente:
responsabilidad del paquete;/** * Interfaz de habilidades DOC, las habilidades que se vincularán deben implementar esta interfaz* */public interface ISkill { public void castSkill();}responsabilidad del paquete;importar java.util.ArrayList;importar java.util. /** * Clase de macro DOC, utilizada para unir múltiples habilidades para lograr un casting con un solo clic* */public class Macro { /** * Colección DOC de múltiples habilidades unidas*/ public List<ISkill > skills = new ArrayList<ISkill>(); /** * * DOC lanza habilidades en el orden de enlace */ public void castSkill() { for (int i = 0; i < skills.size(); i++) { skills.get( i).castSkill(); } } /** * Habilidad de enlace DOC. * * @param habilidad */ public void bindSkill(ISkill habilidad) { skills.add(skill); Habilidad DOC Ice Arrow, sin tiempo de enfriamiento* */public class IceArrow implements ISkill { @Override public void castSkill() { System.out.println("Cast--"Ice Arrow"); }}responsabilidad del paquete;/* * * DOC Habilidad Pulso frío con sangre helada, tiempo de enfriamiento 2 minutos*/clase pública IceBloodFast implements ISkill { @Override public void castSkill() { // Esto se puede utilizar para determinar si la habilidad se está enfriando. System.out.println("Cast--"Ice-Blooded Cold Pulse") se omite aquí; }}
Clase de prueba:
responsabilidad del paquete; clase pública Principal { public static void main(String[] args) { Macro macro = new Macro.bindSkill(new IceBloodFast()); ); }}
Resultados de la prueba:
Ahora lanzando: "Lanzamiento de pulso frío con sangre helada:" Flecha de hielo
Resumen: el modelo de cadena de responsabilidad se utiliza principalmente cuando una solicitud puede tener varios objetos para procesar.