A abordagem da interface funciona quando o número de parâmetros é o mesmo. Mas e com parâmetros diferentes? Voltamos aos ifs e a classe cresce? E se o tipo de desconto vem de um banco de dados? Não teriamos que fazer os ifs para disparar o método adequado?