Skip to content

Instantly share code, notes, and snippets.

@felippepuhle
Created September 20, 2017 12:06
Show Gist options
  • Select an option

  • Save felippepuhle/34eef32351141dc0ad148b8cb8d613c4 to your computer and use it in GitHub Desktop.

Select an option

Save felippepuhle/34eef32351141dc0ad148b8cb8d613c4 to your computer and use it in GitHub Desktop.
public class DescontoPorMaisDeCincoItens {
public double desconta(Orcamento orcamento) {
if(orcamento.getItens().size > 5) {
return orcamento.getValor() * 0.1;
}
return 0;
}
}
public class DescontoPorMaisDeQuinhentosReais {
public double desconta(Orcamento orcamento) {
if(orcamento.getValor() > 500) {
return orcamento.getValor() * 0.07;
}
return 0;
}
}
public class CalculadorDeDescontos {
public double calcula(Orcamento orcamento) {
// vai chamando os descontos na ordem até que algum deles dê diferente de zero...
double desconto = new DescontoPorMaisDeCincoItens().desconta(orcamento);
if(desconto == 0)
desconto = new DescontoPorMaisDeQuinhentosReais().desconta(orcamento);
if(desconto == 0)
desconto = new ProximoDesconto().desconta(orcamento);
// ...
return desconto;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment