Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uso do Decorator x Uso do Chain

Boa noite!

Fiquei com a mesma dúvida da pergunta anterior. Não seria mais simples utilizar a pattern Chain? Me pareceu que o Decorator é uma versão mais complicada dele.

Estou confuso com a utilização do Decorator.

2 respostas
solução!

Oi Matheus, tudo bom?

A proposta dos dois são diferentes. Patterns são soluções comuns para problemas comuns. A proposta do Decorator é construir comportamentos compostos, nesse pattern os processamentos se acumulam. No chain of responsability, o objetivo é criar uma cadeia de execução de códigos, que não necessariamente são compostas. Ambos utilizam interfaces e self-relashionship das entidades no processo mas as propostas são diferentes.

Por isso, não é possivel que um pattern seja uma versão mais complicada ou mais simples de outro pois eles se propoem a resolver problemas diferentes.

Perceba que, no proprio exemplo do curso, os padrões são usados em contextos diferentes. Na cadeia de descontos, apenas um desconto é aplicado. A cadeia serve para descobrir qual deles é o ideal para um certo caso. Já no caso do decorator, temos impostos, que são compostos uns pelos outros e os valores se acumulam. Por isso, inclusive, a complexidade maior =)

Qualquer problema é só falar.

Abraço

Muito obrigado! Ficou mais claro para mim agora!