modo de comando é um padrão de design comportamental que converte uma solicitação em um objeto separado que contém todas as informações relacionadas à solicitação. Essa transformação permite parametrizar métodos com base em diferentes solicitações, atrasar ou enfileirar solicitações e implementar operações reversíveis.
Estrutura do modo de comando
remetente (Sender) - também conhecida como "Invoker" - classe é responsável por inicializar a solicitação, que deve conter uma variável membro para armazenar uma referência ao objeto de comando. O remetente aciona o comando sem enviar uma solicitação diretamente ao destinatário. Observe que o remetente não é responsável pela criação do objeto de comando: geralmente obtém um comando pré-gerado do cliente por meio de um construtor.
OrdemA interface (Comando) geralmente declara apenas um método para executar o comando.
Pedidos específicos (Concrete Commands) implementará vários tipos de solicitações. O comando específico em si não conclui o trabalho, mas delega a chamada a um objeto de lógica de negócios. Mas para simplificar o código, essas classes podem ser mescladas. Os parâmetros necessários para receber o método de execução do objeto podem ser declarados como variáveis-membro de comandos específicos. Você pode tornar o objeto de comando imutável e permitir apenas a inicialização dessas variáveis de membro por meio do construtor.
receptor A classe (receptor) contém parte da lógica de negócios. Quase qualquer objeto pode servir como receptor. A maioria dos comandos trata apenas dos detalhes de como passar a solicitação ao destinatário, e o destinatário fará o trabalho propriamente dito.
cliente (Cliente) criará e configurará objetos de comando específicos. O cliente deve passar todos os parâmetros da solicitação, incluindo a entidade destinatária, para o construtor do comando. Depois disso, o comando gerado pode ser associado a um ou mais remetentes.