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

Dúvida no Ex. 7 da Aula 2 - Muitos Descontos e o Chain of Responsibility

Olá. Minha dúvida é simples. Esse padrão Chain é aplicável quando, dentre várias regras, somente uma é aceita, correto? Por exemplo, no caso das regras das compras, eu não poderia usar este padrão caso eu quisesse aplicar descontos acumulativos. Por exemplo, caso o cliente compre acima de 500 reais, ele receberia 10% e, caso compre mais de 5 itens, ele ganharia mais 7%. Nesse exemplo ainda entraria uma outra peculiariade: seriam 17% de 500 ou 10% de 500 e depois mais 7% do que restou. Enfim, independente da forma que o desconto seria aplicado, nesse meu exemplo, seriam aplicados dois descontos em uma mesma compra. Para esse exemplo, eu não poderia usar o Chain, correto? Porque pelo que entendi, quando o chain acha uma regra que seja aplicável, ele para. Obrigada.

3 respostas
solução!

Ola , Josineire Melo C Sallum !

Olha que bacana, o Chain justamente nos da a liberdade de implementar de acordo com a necessidade do negócio. No caso de descontos cumulativos, serviria bem o chain.

Pensando que para cada implementação você pode ter uma forma diferente de aplicar descontos.

Acredito que a parte mais importante, é LEMBRAR que você pode ter varias e varias implementações diferentes na sua CHAIN.

Ex.:

Desconto desconto10PorCentro = new Desconto10PorCentro();
Desconto desconto5PorCento = new Desconto5PorCentro();
desconto10PorCentro.setProximo(desconto5PorCento);

Não pense como se fosse um GRANDE ( IF, ELSEIF, ELSEIF ), ao usar o chain, pense que vc tera varias implementações e que vc podera usar quantas forem necessárias para atender as regras do seu negócio.

Ficou claro ?

Abraços!

Perfeito. Muito obrigada.

Ola, Josineire Melo C Sallum !

Foi esclarecida sua dúvida ?

Caso positivo, poderia marcar como dúvida solucionada?

Muito Obrigado!