Padrões comportamentais
Formulário para Descrição de Padrões
Nome e Classificação Intenção Também Conhecido Como Motivação Aplicabilidade Estrutura Participantes Colaboradores Conseqüências Implementação Exemplo de Código Usos Conhecidos Padrões Relacionados
Notação de Classes e Objetos
ClasseAbstrata operaçãoAbstrata() referencia objeto agrega cria um muitos ClasseConcreta
SubclasseConcreta1 operação() variávelDeInstância
SubclasseConcreta2 pseudo código
umObjeto referênciaAObjeto
outroObjeto variávelDeInstância
Diagrama de Interação de Objetos umObjeto outroObjeto
operação ativa sobre o objeto
outroObjeto = new Objeto() (instanciação) outroObjeto.método() this.método()
TEMPO
Padrões Comportamentais(1/2)
Tratam de algoritmos e como atribuir responsabilidades entre objetos Interpreter ChainOf Command Responsibility new exec exec() a &
*
|
Iterator Mediator
b
c
Memento
Padrões Comportamentais(2/2)
Tratam de algoritmos e como atribuir responsabilidades entre objetos State Strategy Observer(s)
30%, 20%, 50% 10%, 60%
TemplateMethod() a() a() b()
Visitor Visitor Visitor
b()
a(..); ... b(..);
Padrões Comportamentais
Enquanto se concentram apenas na forma como os objetos são conectados, criam complexos fluxos de controle que são difíceis de seguir em runtime. De Classe baseados no uso de herança
De Objeto baseados no uso de composição
Padrões Comportamentais
Chain of Responsibility - Encadeamento de Atendentes Command - Comando Interpreter Interpretador Iterator - Iterador Mediator - Mediador Memento - Lembrança Observer - Observador State - Estado Strategy - Estratégia Template Method Esqueleto de Método Visitor - Visitante
Padrões Comportamentais
Chain of Responsibility - Encadeamento de Atendentes (Objeto) Evita acoplamento entre solicitantes e atendentes permitindo que mais de um objeto tenha chance de tratar da solicitação. Encadeia os atendentes e passa a