Discusión correcta:
El modo de comando encapsula una solicitud u operación en un objeto. El sistema de tiempo de ejecución del modo de comando utiliza diferentes solicitudes para parametrizar el cliente, las solicitudes de cola o los registros de solicitudes de registro, y puede proporcionar funciones de revocación y recuperación de comandos.
popular:
En realidad es fácil de entender. Modo de comando, lo que le importa son los comandos (u operaciones). Demos un ejemplo. En una empresa, toda la operación es como un sistema. Un jefe emitió una orden, y el líder de nivel medio recibió la orden y luego la asignó al empleado específico a cargo. Todo el proceso es claro. Existe un requisito, cómo arreglar este proceso y formar un sistema. Solo necesitamos comprender el punto clave: ordenar. Extraiga y todo lo demás se resolverá. Extraiga los comandos y los encapsule en un objeto independiente para lograr el desacoplamiento. En cuanto a los demás, se puede ampliar fácilmente, ya sea que este comando fuera propuesto por el CEO, el Departamento de Recursos Humanos o su padre. Independientemente de si el albacea de esta orden es Zhang San o tortuga. La aparición de este modelo es en realidad un "agarrar la contradicción principal" filosófica. Más ejemplos, como los otros escritores, citaron "¿Cuál es la diferencia entre ir a la carretera y ir a un restaurante de barbacoa para comer barbacoa" o "El Rey Monkey hace un gran alboroto sobre el Emperador Jade en el palacio celestial para capturar monos con Taibai Venus".
El modo de comando Java es esencialmente una encapsulación de comandos, que separa la responsabilidad de emitir comandos y delega a diferentes objetos. En términos de Layman, soy el jefe, así que solo envío un pedido. En cuanto a quién enviar esta orden a y quién la ejecuta, depende de mí. No envío dinero para contratar a alguien para que me cause problemas. Usted es el empleado a cargo de las cosas, y su deber es hacer las tareas asignadas por sus superiores. Sea con los pies en la tierra, no sepas demasiado, no te cotileres, no pidas demasiado.
lograr:
Echemos un vistazo al diagrama de clases primero:
Basado en esto, miramos el código de muestra:
interfaz pública iCommand {void ejecutute (); } public class Concretecommand implementa ICommand {receptor privado receptor; public ConcreteCommand (receptor receptor) {this.Receiver = receptor; } @Override public void ejecute () {this.Receiver.Action (); }} receptor de clase pública {public void Action () {System.out.println ("receptor hacer algo"); }} Public Class Invoker {comando privado iCommand; Public Invoker (comando icommand) {this.command = command; } public void Invoke () {this.command.execute (); }} prueba de clase pública {public static void main (string [] args) {receptor receptor = new Repiver (); // El comando ICommand de ejecutor real = new ConcreteCommand (receptor); // El comando utilizado para aislamiento Invoker Invoker = New Invoker (comando); // El llamado invocador.invoke (); }}
ventaja:
defecto:
Puede haber demasiadas clases de comando específicas.