Fala professor tudo certo?
Fiquei com uma dúvida sobre a aplicação do pattern Chain of Responsability em uma aplicação bem semelhante a comentada no curso: Trabalho em uma empresa que tivemos essa mesma aplicação de descontos (Só que sem design pattern) e ao todo foram feitas em torno de 15 lógicas de decisão no sistema.
Ao ver esse pattern imediamente pensei nisso e me questionei: Será que para um problema desses o código não ficaria muito longo (meio que um código hadouken) ? e existe alguma forma de não cair nisso?
Talvez eu até esteja pensando no Pattern errado para solucionar esse problema...
Exemplo:
class CalculadoraDeDescontos {
public function calcular(Quote $quote) : float {
$cadeiaDescontos = new DescontoItemAssociadoNoCarrinho(
new DescontoMaisDe2ProdMesmaEmpresa(
new DescontoMaisDe10Prod(
new DescontoMaisDe1500Valor(
new DescontoMaisDe500Valor(
new NenhumDesconto()
)
)
)
)
);
return $cadeiaDescontos->calcular($quote);
}
}