1
resposta

Implementação do Desconto com parâmetros variados

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?

1 resposta

Oi Nalmir, tudo bom?

Infelizmente a gente ainda não tem sobrecarga no PHP, por isso no primeiro cenário (dos parâmetros diferentes) seria necessário os ifs não pelo pattern mas pela limitação da linguagem.

Se o desconto vem do banco de dados, significa que você guarda a classe que representa esse desconto. Nesse caso, você pode utilizar reflection para evitar o if das instâncias/chamada dos métodos.

Abraço