Command: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Etiqueta: Referências removidas
Reversão. Conteúdo copiado de [www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/command.htm]
Linha 2:
 
==Objetivo==
O Padrão Command encapsulaEncapsular uma solicitação como um objeto, odesta queforma lhepermitindo permiteque parametrizarclientes outros objetos comparametrizem diferentes solicitações, enfileirarenfileirem ou registrarfaçam solicitaçõeso eregistro implementar recursos(log) de cancelamentosolicitações dee suportem operações.<ref>FREEMAN, Ericque podem Useser a cabeça!: Padrões de Projetos (Design Patterns)desfeitas.</ref>
 
A principal motivação do uso do padrão Command é que algumas vezes é necessário emitir solicitações para objetos sem nada saber sobre a operação que está sendo solicitada ou sobre seu receptor .
 
Como exemplos de uso do padrão temos menus e controles, que são aplicações que possuem apenas comandos (ações) para serem executados através deles.
 
==O Padrão==
Também conhecido por Action ou Transaction, é um padrão simples e muito utilizado. Porém ele possui alguns detalhes importantes que precisam ser notados, caso contrário sua implementação pode não trazer tanta reutilização.
 
O Command tem como objetivo encapsular uma solicitação como um objeto, o que permite parametrizar outros objetos com diferentes solicitações, enfileirar ou registrar solicitações e implementar recursos de cancelamento de operações (desfazer). Ou seja, 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.
 
O livro Padrões de Projeto de Erich Gamma <ref name="refname2">diz que a principal motivação do Command é que algumas vezes é necessário emitir solicitações para objetos sem nada saber sobre a operação que está sendo solicitada ou sobre seu receptor.</ref> 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.
 
==Problema==
Linha 35 ⟶ 24:
[[Categoria:Padrões de projeto de software]]
[[Categoria:Engenharia de software]]
 
{{referências|refs=
<ref name="refname2">GAMMA, Erich; HELM; Richard; JOHSON, Ralph; VLISSIDES, John – Padrões de Projeto – Soluções reutilizáveis de software orientados a objeto.</ref>
 
}}