Essa designer aplicado ainda não faria que a implementação continuasse crescendo para cada regra de desconto? caso existir 100 regras de desconto(hipoteticamente falando) nos precisaríamos instanciar e chamar o próximo em cada construtor. Isso não ferir iria a coesão?