Buscar

Aula 36 - Chain of Responsibility

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Modelagem de 
Padrões de Projeto
Aula 36 - Chain of Responsibility
Chain of Responsibility
(aka CoR, Corrente de responsabilidade, Corrente de comando ou Chain of command)
Criacionais
Prototype
Abstract 
Factory
Builder
Factory 
Method
Singleton
Command
Comportamentais
Chain of 
Responsibility
Memento
Observer
Visitor
Template 
Method
Iterator
State
Strategy
Mediator
✓
✓
✓
✓
✓
✓
✓
Estruturais
Adapter
Flyweight
Ilustrações: SHVETS (2022)
Bridge
FacadeDecorator
Composite
Proxy
✓ ✓
✓
✓
✓✓
✓
✓
✓
✓
✓
✓✓
✓
● É um padrão de projeto que tem por objetivo implementar uma corrente 
de handlers. Cada handler (ou elo) da corrente processa o pedido ou passa 
para o próximo handler (ou elo).
Definição
O caráter de árvore em uma arquitetura CoR
Estrutura
O Handler declara a 
interface, comum a todos 
os handlers concretos. 
Ele geralmente contém 
apenas um único método 
para lidar com pedidos, 
mas algumas vezes ele 
pode conter outro 
método para configurar o 
próximo handler da 
corrente.
Fo
n
te
: S
H
V
E
T
S 
(2
0
2
2
)
Estrutura
O Handler Base é uma classe 
opcional onde você pode colocar o 
código padrão que é comum a 
todas as classes handler.
Geralmente, essa classe define um 
campo para armazenar uma 
referência para o próximo handler. 
Os clientes podem construir uma 
corrente passando um handler 
para o construtor ou setter do 
handler anterior. A classe pode 
também implementar o 
comportamento padrão do 
handler: pode passar a execução 
para o próximo handler após 
checar por sua existência.
Fo
n
te
: S
H
V
E
T
S 
(2
0
2
2
)
Estrutura
O Handler Concreto contém 
o código real para processar 
pedidos. Ao receber um 
pedido, cada handler deve 
decidir se processa ele e, 
adicionalmente, se passa ele 
adiante na corrente.
Os handlers são geralmente 
auto contidos e imutáveis, 
aceitando todos os dados 
necessários apenas uma vez 
através do construtor.
Fo
n
te
: S
H
V
E
T
S 
(2
0
2
2
)
Estrutura
O Cliente pode compor 
correntes apenas uma vez ou 
compô-las dinamicamente, 
dependendo da lógica da 
aplicação. Note que um 
pedido pode ser enviado para 
qualquer handler na 
corrente—não precisa ser ao 
primeiro.
Fo
n
te
: S
H
V
E
T
S 
(2
0
2
2
)
✓ É possível controlar a ordem em 
que os tratamento é executado.
✓ Princípio da responsabilidade 
única. Quem chama a operação é 
uma entidade diferente de quem 
processa.
✓ Princípio do aberto/fechado. A 
introdução de novos handlers 
não modifica aqueles já 
existentes.
Im
ag
em
 d
e 
p
ik
is
u
p
er
st
ar
 n
o
 F
re
ep
ik
(Des) Vantagens de utilizar o padrão
✖ Dependendo de como se der a 
implementação, pode acontecer 
de uma requisição não ser 
processada por ninguém.
D
úv
id
as
?
Referências SHVETS, Alexander. Mergulho nos Padrões de Projeto. Edição 2023-1.24. Kyiv: Refactoring.guru. 2022.

Outros materiais