Olhando os padrões Decorator e Chains of responsability, a uma primeira vista achei os dois idênticos. Qual a diferença entre eles?
Olhando os padrões Decorator e Chains of responsability, a uma primeira vista achei os dois idênticos. Qual a diferença entre eles?
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!