Você está na página 1de 17

Dirceu da Silva Neto

Felipe Caravaggio Damasceno


Felipe da Silva Nunes
adro
ommand
P
C
Introduo
Padro de Projeto

- Padro de Projeto nada mais do que uma
soluo geral reutilizvel para um problema
recorrente no desenvolvimento de software
orientados a objetos;


- No so cdigos prontos e sim modelos de
como resolver o problema do qual se lida, que
tambm pode ser usado em outras diversas
situaes;


- Os Padres de Projetos so organizados em
trs famlias: Padres de criao (criao de
objetos), Padres estruturais (associaes
entre classes e objetos) e Padres
comportamentais (interaes/divises de
deveres entre classes ou objetos);
Definio
Padro Command

- O Padro Command est na famlia dos
Padres Comportamentais (interaes e
divises de responsabilidades entre classes ou
objetos);


- Encapsula uma requisio como um objeto
permitindo que os clientes parametrizem
diferentes requisies, filas ou fazer o registro
(log) de solicitaes e suportar operaes que
podem ser desfeitas (undo).


- A ideia de encapsulamento no para
proteo aos dados, e sim com uma maneira
de parametrizar as solicitaes dos objetos de
forma que estes no fiquem acoplados.
Definio
Padro Command

- Existem situaes nas quais necessrio
emitir solicitaes para objetos sem que se
conhea nada a respeito da operao ou do
receptor da mesma.


- Em algumas bibliografias, o Padro Command
tambm pode ser citado com outros nomes,
como Action e Transaction.
Definio
Diagrama de Classes
Padro Command
Definio
Diagrama de Classes
Participantes
Command: Declara uma interface para a
execuo de uma operao;

ComandoConcreto: Define uma vinculao
entre um objeto e um Receptor e uma ao.
Implementa execute atravs da invocao
da operao correspondente no Receptor;

Cliente: Cria um objeto ComandoConcreto e
estabelece o seu receptor;

Invocador: Solicita ao Command a execuo
da solicitao;

Receptor: Sabe como executar as operaes
associadas a uma solicitao. Qualquer classe
pode funcionar como um Receptor;

Definio
Padro Command
Consequncias
Vantagens
Padro Command
- A facilidade de extenso da arquitetura,
permitindo adicionar novos commands sem
efeitos colaterais;

- Podem se tornar mais complexos atravs
de MacroComandos, que permitem a chamada
simultnea de mltiplos Comandos;

- O bom nvel de desacoplamento entre
objetos, separando os objetos que possuem
os dados dos que manipulam os dados;

- Possibilita desfazer as aes realizadas por
um comando (necessrio implementar um
mtodo undo no comando);
Desvantagens
Padro Command
- Um problema que pode ocorrer a
complexidade dos comandos crescer demais.
Por exemplo, se todos os commands precisam
realizar vrias aes.


- Deixa o design da aplicao procedural, ou
seja, orientado a aes.


- Pode ser mal entendido ou demorar at ser
compreendido por programadores com falta
de experincia ou que no conhecem padres
de projeto. Isso pode acarretar em falhas ou
desestruturao no cdigo.
Diagrama
Exemplo Controle de
Porto Eletrnico
Cdigo
Exemplo - Command
(Interface)
Cdigo
Exemplo - AbrirCommand
Cdigo
Exemplo - FecharCommand
Cdigo
Exemplo - Controle
Cdigo
Exemplo - Portao
Cdigo
Exemplo - Main
Bibliografia
- GAMMA, Erich; HELM; Richard; JOHSON,
Ralph; VLISSIDES, John Padres de Projeto
Solues reutilizveis de software orientados
a objeto .


- FREEMAN, Eric Use a cabea!: Padres de
Projetos (Design Patterns)
Livros