Para as classes ICMS e ISS, geradas na aula 1: seria mais adequado inserir no pacote de serviços, entidades de modelo, classes utilitárias ou outro?
Outra dúvida: seria uma má prática criá-las em um Enum? Por exemplo:
public interface CalculoImposto {
double calcula(Orcamento orcamento);
}
public enum ImpostoEnum {
ISS( calculoISS() ),
ICMS( calculoICMS() );
private CalculoImposto calculo;
public ImpostoEnum(CalculoImposto calculo){
this.calculo = calculo;
}
public CalculoImposto getCalculo(){
return this.calculo;
}
private static CalculoImposto calculoISS() {
return new Imposto() {
public double calcula(Orcamento orcamento) {
return orcamento.getValor() * 0.06;
}
}
}
private static CalculoImposto calculoICMS() {
return new Imposto() {
public double calcula(Orcamento orcamento) {
return orcamento.getValor() * 0.05 + 50;
}
}
}
}
public class Teste {
public static void main (String[] args) {
CalculoImposto calculoISS = ImpostoEnum.ISS.getCalculo();
CalculoImposto calculoICMS = ImpostoEnum.ICMS.getCalculo();
Orcamento orcamento = new Orcamento(500.0);
CalculadorDeImposto calculador = new CalculadorDeImposto();
calculador.realizaCalculo(orcamento, calculoISS);
calculador.realizaCalculo(orcamento, calculoICMS);
}
}