Se o meu código passa pelos casos de desconto até o final, para não ficar sempre reescrevendo na classe calculadora a cada nova regra faz sentido usar uma estrutura como uma lista encadeada simples já que é a mesma ideia de ter um nó/objeto apontando para o da frente?