PSS – Design Pattern
Chain of Responsibility
1
Chain of Responsibility
Propósito do Padrão
• Evitar acoplamento do emissor de uma
requisição com seu receptor;
• Cadeia de objetos atende solicitação
2
Chain of Responsibility
Motivação
• Desacoplar emissores e receptores dando a
chance de vários objetos manipularem a
requisição;
3
Chain of Responsibility
Aplicação
• Mais de um objeto (desconhecido pelo
emissor) pode tratar uma solicitação;
• Alguém que fazer um pedido para dentre
vários objetos sem especificá-lo.
• Os objetos que podem manipular uma
solicitação seriam especificados
manualmente.
4
Chain of Responsibility
Estrutura
5
Chain of Responsibility
Participantes
• Handler
– Define a interface para receber as solicitações;
– Implementa o link para o sucessor (opcional)
• ConcreteHandler
– Recebe as solicitações pelas quais é responsável;
– Tem acesso ao sucessor para quem envias as
solicitações que não são de sua responsabilidade
• Client
– Inicia a solicitação para um objeto na cadeia
6
Chain of Responsibility
Colaborações
• Quando um cliente faz uma solicitação, o
pedido se propaga pela cadeia até que algum
objeto assuma a responsabilidade de atender
7
Chain of Responsibility
Conseqüências
• Reduz o acoplamento;
• Atribuindo responsabilidade aos objetos,
adiciona-se flexibilidade;
• A recepção da solicitação não é garantida
8
Chain of Responsibility
Exemplos de Código
• Implementação do FilterCriteria
9
Chain of Responsibility
Exemplos de Código
• Adicionando o FilterCriteria no CollectionFilter
• Filtrando
10
Fim
• Daniel Salles Chevitarese
• [email protected]
Download

Slides