Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como posso evitar o uso dos IFs e ELSEs e o uso de enum, para troca na instância nas Classes

Boa noite, fiquei com uma duvida na Técnica de Strategy, gostaria de saber como eu posso fazer a troca de instância de uma classe para a outra, sendo que ela esta sendo instaciada no main.

public static void main(String[] args) {

    Orcamento orcamento = new Orcamento(new BigDecimal("500"));

    CalculadoraDeImpostos Calculadora = new CalculadoraDeImpostos();

    System.out.println(Calculadora.calcularUsandoInterface(orcamento, new ISS()));

}

Vi alguns métodos no Fórum, sendo resolvido com enum. O que eu gostaria de saber se tem outra metodologia de fazer essa troca sem ifs e sem enuns.

1 resposta
solução!

Oi José,

Como fizemos apenas uma demonstração para mostrar os patterns via método main, a classe acabou sendo instanciada na mão mesmo e para trocar teria que mudar o new.

Mas em um projeto real é provável que o usuário escolha o tipo de imposto e o sistema deve calcular de acordo com essa escolha feita. O mais comum seria utilizar um enum mesmo, pois sem ele teria que fazer via Class.forName("imposto") para carregar a classe pelo nome do imposto escolhido pelo usuário.