Pessoal, boa tarde
Sobre refatorar o cálculo do imposto, tenho essa opinião e gostaria da ajuda de vocês:
O método abaixo faz duas coisas diferentes: calcula o imposto (valor * taxa) e descobre a taxa a ser aplicada. Não seria melhor separar o cálculo da taxa? Se, por exemplo, o cálculo mudar, a taxa permanece inalterada, ou vice-versa.
public double getImpostos() {
double imposto = 0;
if(valorBruto < 200) {
imposto = valorBruto * 0.03;
}
else if(valorBruto > 200 && valorBruto <= 1000) {
imposto = valorBruto * 0.06;
}
else {
imposto = valorBruto * 0.07;
}
return imposto;
}
Ficaria assim:
public double getImpostos() {
return valorBruto * getTaxaImposto();
}
private double getTaxaImposto() {
double taxa = 0;
if(valorBruto < 200) {
taxa = 0.03;
}
else if(valorBruto > 200 && valorBruto <= 1000) {
taxa = 0.06;
}
else {
taxa = 0.07;
}
return taxa;
}