Olá a todos!
Juntei alguns conceitos aprendidos em outras aulas na Alura e fiz as minhas classes da seguinte forma:
public enum TipoImpostoEnum {
ICMS(new BigDecimal("0.1")),
ISS(new BigDecimal("0.06")),
IPQP(new BigDecimal("0.4"));
private final BigDecimal aliquota;
TipoImpostoEnum(BigDecimal aliquota) {
this.aliquota = aliquota;
}
public BigDecimal getAliquota() {
return aliquota;
}
}
public class CalculadoraDeImpostosEnum {
public BigDecimal calcularImposto(Orcamento orcamento, TipoImpostoEnum tipoImposto) {
return orcamento.getValor().multiply(tipoImposto.getAliquota());
}
}
public class TesteCalculoImposto {
public static void main(String[] args) {
BigDecimal valor = new BigDecimal("1000");
Orcamento orcamento = new Orcamento(valor);
CalculadoraDeImpostosEnum calculadora = new CalculadoraDeImpostosEnum();
BigDecimal impostoCalculado = calculadora.calcularImposto(orcamento, TipoImpostoEnum.ICMS);
System.out.println(impostoCalculado);
Fiz o teste, compilou e rodou certinho.
Ainda assim, tá seguindo o padrão de projeto e respeitando as boas práticas?