Considere que temos um sistema de vendas onde diferentes formas de desconto podem ser implementadas de acordo com as promoções vigentes, como em datas comemorativas. O sistema deve permitir o cálculo do desconto sobre a venda das seguintes maneiras:
-
percentual de desconto definido (que pode vir de um banco de dados);
-
percentual de desconto progressivo:
valor da compra/25
, não podendo ultrapassar 20% (este são apenas valores arbitrários de exemplo); -
desconto de 15% na data de aniversário do cliente.
O usuário é quem escolhe o tipo de desconto a ser aplicado, não o programa. O programa deve apenas permitir que seja mudado o algoritmo de cálculo do desconto.
Responda
-
Qual padrão de projeto pode ser utilizado no desenvolvimento de uma solução?
-
Como poderíamos implementar estes tipos de desconto sem utilizar Padrões de Projetos?
-
Quais os problemas que tal implementação traria?
-
Implemente o projeto e envie o link para repositório no GitHub, onde o README deve conter as respostas.