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.
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.
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!