Padrão Command
ALUNO: JAINALDO DA SILVA
Objetivo
É um padrão comportamental cuja intenção é encapsular uma solicitação como um objeto e desta forma permitir que você parametrize clientes com diferentes solicitações, enfileire ou registre(log) solicitações e suporte operações que podem ser desfeitas.(GoF).
O padrão Command nos diz como criar “objetos de comando” que encapsula uma solicitação para fazer algo em um objeto específico. o objetivo do padrão é transformar um método de uma classe em um objeto, o qual pode executar a ação deste método.
Sinônimos:
◦Action, Transaction.
Motivação
“As vezes é necessário emitir solicitações para objetos sem nada saber sobre a operação que está sendo solicitada ou sobre seu receptor”
Exemplificando o que o livro diz, imagine um portão eletrônico que você queira abrir, não é necessário saber como funciona o mecanismo que faz o portão abrir ou de que o portão é feito, você apenas quer abrir o portão e por isso aperta um botão que faz ele abrir.
Diagrama de Classe e
Participantes
Chamador(Invoker) - Solicita ao Command a execução da solicitação. Inicia a execução dos comandos;
Cliente
(Client) Cria um objeto ComandoCon creto e define o seu receptor; Receptor(Receiver) - Sabe como executar as operações associadas a uma solicitação.
Qualquer
classe pode funcionar como um Receiver.
Comando
(Command): Declara uma interface para executar uma operação; ComandoConcreto
(CommandConcret):
Define uma vinculação entre um objeto Receptor e uma ação; E também implementa
“execute”
através da invocação da operação correspondente no Receiver.
Diagrama de Sequencia
Vantagens em usar o padrão: O padrão Command desacopla o objeto que invoca a operação
daquele que sabe como executá-la;
O padrão Command reduz o acoplamento (dependência) entre o objeto que chama a operação e o objeto que executa a operação;
No padrão Command os comandos são objetos de