1
resposta

Reescrever construtor.

Existe algum problema em reescrever o construtor sem parâmetros de forma que se ele for chamado ele já providencia que o atributo outro seja null, por exemplo:

public class IGF extends Imposto {
    private static final String VALOR_IGF = "0.45";

    public IGF(Imposto outro) {
        super(outro);
    }

    public IGF() {
        super(null);
    }

    @Override
    protected BigDecimal realizarCalculo(Orcamento orcamento) {
        return orcamento.getValor().multiply(new BigDecimal(VALOR_IGF));
    }
}

Dessa forma eu poderia fazer a chamada sem ter que por null no parâmetro.

public class App {
    public static void main(String[] args) {
        Orcamento orcamento = new Orcamento(new BigDecimal("100"), 5);
        CalculadoraDeImposto calculadoraDeImposto = new CalculadoraDeImposto();

        System.out.println(calculadoraDeImposto.calcular(orcamento, new ICMS(new ISS(new IGF()))));
    }
}
1 resposta

Oi Lucas,

Pode ser sim desse jeito que voce fez. Fica ate melhor, pois o null fica "escondido" dentro da classe.

Bons estudos!