Padrões Comportamentais
Template Method
Define o esqueleto de um algoritmo em uma operação, passando a implementação de
alguns passos para subclasses dessa foram permitindo que alguns passos sejam
definidos na subclasse sem alterar a estrutura do algoritmo.
Participantes
AbstractClass - implementa um método template (genérico) que define o esqueleto de
um algoritmo onde são utilizados os métodos abstratos(primitivos) que devem ser
implementados nas subclasses.
ConcreteClass - implementa as operações primitivas definidas na superclasse permitindo
a subclasse definir como as partes específicas do algoritmo serão implementadas.
State
Tem por objetivo permitir que um objeto altere seu comportamento quando seu estado
interno muda. O objeto parecerá ter mudado de classe. (Gamma et al, 2000)
Participantes
Context - define a interface de interesse aos clientes através da qual serão feitas as
suscitações a um determinado comportamento e é responsável por manter uma
instância de uma subclasse ConcreteState que define o estado atual.
State - define uma interface para encapsular o comportamento associado com um estado
particular do contexto, esse participante declara os métodos relativos às transições.
1
ConcretState - cada subclasse implementa um comportamento associado a um estado de
Contexto
Command
Encapsular uma solicitação como um objeto, assim, permitindo parametrizar clientes com
diferentes solicitações, enfileirar ou criar um log de solicitações e suporte a operações
que podem ser desfeitas. (Gamma et al, 2000)
Participantes
Command - declara uma interface para a execução de um comando
ConcreteCommand - implementa a lógica que deve ser executada quando o
Invoker fizer a solicitação além de poder definir uma vinculação entre um objeto Receiver
que é responsável por executar a tarefa.
Invoker - pede o comando para realizar uma tarefa
Receptor - sabe como executar as tarefas associadas à realização do comando.
Client - cria um objeto ConcreteCommand e define seu receptor
Strategy
Segundo (Gamma et al, 2000) o esse padrão define uma família de algoritmos,
encapsula cada um deles, e torna-os intercambiáveis. Strategy permite que o algoritmo
varie independentemente dos clientes que o utilizam.
Participantes
Strategy - declara uma interface comum a todos os algoritmos suportados
2
ConcreteStrategy - implementa o algoritmo usando a interface declarada em Strategy
Contexto - mantém uma referência a um objeto de Strategy podendo mudar a
ConcreteStrategy referenciada em tempo de execução. (Gamma et al, 2000)
Iterator
Fornecem uma maneira de acessar os elementos de um objeto agregado
sequencialmente sem expor sua representação subjacente.
Participantes
Iterator - define a interface para acessar e percorrer os elementos.
ConcreteIterator - Implementa a interface Iterator e mantém o controle da posição
corrente no percurso do agregado.
Aggregate - define uma interface para a criação de um objeto Iterator.
ConcreteAggregate - implementa a interface de criação do Iterador para retornar uma
instância do ConcreteIterador.
Observer
Definir uma dependência um-para-muitos entre objetos para que quando um objeto
mude de estado, todos os seus dependentes são notificados e atualizados
automaticamente. (Gamma et al, 2000)
3
Subject - conhece seus observadores além de fornecer uma interface para anexação e
“desanexação” dos objetos Observer.
ConcreteSubject - armazena os estados de interesse para ConcreteObserver e envia
uma notificação para seus observadores quando seu estado muda.
Observer - define uma interface de atualização para objetos que devem ser notificados
quando ocorrerem mudanças em um Subject.
ConcreteObserver - mantém uma referência a um objeto ConcreteSubject, armazena
estado que deve ficar consistente com o do Subject
4
Download

FORMATAÇÃO teste