El modo de comando es el patrón más confuso. En su programación real. El modo de comando en realidad no es un modelo muy específico, y es precisamente esta flexibilidad lo que hace que las personas se sientan un poco confundidas.
Definición de comando
Muchos códigos de modo de comando están dirigidos a la interfaz gráfica.
Encapsula estos comandos en una clase, y luego el usuario (la persona que llama) funciona en esta clase. . (Caller), apunta directamente al código que abre el documento y usa el modo de comando, lo que significa agregar un intermedio entre los dos, romper esta relación directa y aislar los dos, básicamente sin relación.
Obviamente, el beneficio de hacer esto es que se ajusta a las características del empaque y reduce el comando de acoplamiento.
Desde el modo de comando, también descubrí que un "problema común" del modo de diseño: parece que me gusta complicar problemas simples y me gusta agregar terceros a diferentes clases. reutilización del código.
Cómo usar el modo de comando
Los códigos de modo de comando específicos son varios, porque hay diferentes formas de encapsular comandos, diferentes sistemas. El siguiente ejemplo es encapsular un comando en una lista de colección.
Un modo de comando típico requiere una interfaz. Hay un método unificado en la interfaz, que es "comandos/solicitudes de encapsulación en objetos":
La copia del código es la siguiente:
Comando de interfaz pública {
public abstract void ejecute ();
}
Los códigos específicos de comando/solicitud son para implementar el comando de interfaz, y hay tres comandos específicos a continuación:
La copia del código es la siguiente:
Engineer de clase pública Implementa el comando {
public void ejecute () {
// Comando del ingeniero
}
}
Public Class Programmer Implements Command {
public void ejecute () {
// hacer el comando del programador
}
}
El político de clase pública implementa el comando {
public void ejecute () {
// hacer el mando del político
}
}
Como de costumbre, podemos llamar a estos tres comandos directamente, pero usando el modo de comando, tenemos que encapsularlos y arrojarlos a la lista de cuadros negros:
La copia del código es la siguiente:
Productor de clase pública {
Public Static List producerequests () {
List queue = new ArrayList ();
Queue.add (nuevo Domesticineer ());
queue.add (nuevo político ());
queue.add (nuevo programador ());
cola de devolución;
}
}
Después de que estos tres comandos ingresan a la lista, han perdido sus características de apariencia.
La copia del código es la siguiente:
Public Class TestCommand {
public static void main (string [] args) {
List queue = producer.producerequests ();
para (iterator it = queue.iterator (); it.hasnext ();)
// Saque las características intermedias y de otro tipo de la lista, y no puede determinarlo.
// son al menos el "hijo" del comando de interfaz.
((Comando) it.next ()). Execute ();
}
}
Se puede ver que la persona que llama solo trata con la interfaz y no interactúa con la implementación específica. No es necesario modificar el código en el Caller TestCommand.
Después de comprender el principio central del código anterior, todos deben tener sus propios métodos en uso, especialmente en cómo separar la persona que llama y comandos específicos, hay muchos métodos de implementación. . Este enfoque es solo para la demostración.
Una buena razón para usar el modo de comando también es porque puede implementar la funcionalidad de deshacer, y cada comando específico puede recordar la acción que acaba de realizar y restaurarla si es necesario.
El modo de comando se usa ampliamente en el diseño de la interfaz. Los comandos del menú en Java Swing usan el modo de comando.