2
respostas

E esse método NotaFiscal.setImpostos(double)?

Boa tarde,

Com essa refatoração no getImpostos não parece fazer mais sentido manter esse método NotaFiscal.setImpostos(double)...

Att,

WB::

2 respostas

Wilson, como faz tempo que fiz as aulas não lembro do que foi feito, poderia postar as mudanças para eu verificar ?

Bom dia, Matheus!

A classe ficaria assim, segundo a proposição do exercício:

package br.alura.refatoracao.cap3;

public class NotaFiscal {

    private int id;
    private double valorBruto;
    private double impostos;

    public NotaFiscal(int id, double valorBruto) {
        this.id = id;
        this.valorBruto = valorBruto;
    }

    public NotaFiscal(double valorBruto) {
        this(0, valorBruto);
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public double getValorBruto() {
        return valorBruto;
    }
    public void setValorBruto(double valorBruto) {
        this.valorBruto = valorBruto;
    }
    public void setImpostos(double impostos) {
        this.impostos = impostos;
    }

    public double getValorLiquido() {
        return this.valorBruto - this.impostos;
    }


// A alteração foi proposta aqui:
    public double getImpostos() {
        if(valorBruto < 200) {
            impostos = valorBruto * 0.03;
        }
        else if(valorBruto > 200 && valorBruto <= 1000) {
            impostos = valorBruto * 0.06;
        }
        else {
            impostos = valorBruto * 0.07;
        }
        return impostos;
    }

}

Mas entendo que seria melhor este cálculo ficar no construtor e o getImpostos() apenas retornar o valor.

Na verdade mesmo o ideal seria que o imposto fosse recalculado toda vez que o valor da NF mudar através de um método privado, mas isto talvez saia um pouco do escopo dessa aula.

Att,

WB::