Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Decorator x Chains of responsability

Olhando os padrões Decorator e Chains of responsability, a uma primeira vista achei os dois idênticos. Qual a diferença entre eles?

1 resposta
solução!

Olá, Arnaldo. Tudo bom?

Com Decorators, estamos adicionando uma nova funcionalidade/comportamento em alguma coisa, enquanto que, com Chains of Responsability, temos uma sequência de manipuladores sobre um evento.

A implementação correta do Decorator é aquela em que toda a cadeia de chamadas é executada. Como o exemplo do curso, onde um imposto é calculado sobre o valor de outro.

No exemplo dado com Chains of Responsability, podemos notar que há uma interrupção na cadeia de chamadas: quando existe uma condição de orçamento que dá match no tipo de desconto, os próximos itens da cadeia não são chamados, afinal, o processamento daquela informação já atingiu o manipulador correto!