modo comando es un patrón de diseño de comportamiento que convierte una solicitud en un objeto separado que contiene toda la información relacionada con la solicitud. Esta transformación le permite parametrizar métodos en función de diferentes solicitudes, retrasar o poner en cola solicitudes e implementar operaciones que se pueden deshacer.
Estructura del modo de comando
remitente (Remitente), también conocida como "Invoker", la clase es responsable de inicializar la solicitud, que debe contener una variable miembro para almacenar una referencia al objeto de comando. El remitente activa el comando sin enviar una solicitud directamente al receptor. Tenga en cuenta que el remitente no es responsable de crear el objeto de comando: generalmente obtiene un comando pregenerado del cliente a través de un constructor.
OrdenLa interfaz (comando) generalmente solo declara un método para ejecutar el comando.
Órdenes específicas (Comandos concretos) implementará varios tipos de solicitudes. El comando específico en sí no completa el trabajo, pero delega la llamada a un objeto de lógica empresarial. Pero para simplificar el código, estas clases se pueden fusionar. Los parámetros necesarios para recibir el método de ejecución del objeto se pueden declarar como variables miembro de comandos específicos. Puede hacer que el objeto de comando sea inmutable y solo permitir la inicialización de estas variables miembro a través del constructor.
receptor La clase (Receptor) contiene parte de la lógica empresarial. Casi cualquier objeto puede servir como receptor. La mayoría de los comandos solo se ocupan de los detalles de cómo pasar la solicitud al destinatario, y el destinatario hará el trabajo por sí mismo.
cliente (Cliente) creará y configurará objetos de comando específicos. El cliente debe pasar todos los parámetros de la solicitud, incluida la entidad del destinatario, al constructor del comando. A partir de entonces, el comando generado se puede asociar con uno o más remitentes.