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

[Dúvida] Por que usar o Stratagy?

Eu terminei de ver a primeira aula do curso, falando sobre o Stratagy, mas não entendi o porque de usar o Stratagy. Entendo os benefícios de usar esse desing pattern em um projeto real (de melhoras no código à comunicação), mas neste exemplo em especifico, os impostos não iriam estar constantemente mudando e, se não existisse nenhum tipo de consulta a algum serviço para atualiza-los, um enum poderia ser melhor. Usando uma variável dentro do enum que guardasse a taxa do imposto, o código continuaria coeso e a função que calcula o imposto teria de, apenas, usar o valor da taxa para calcular, e não fazer a chamada de uma outra função; Diminuindo o numero de classes e deixando as taxas em um mesmo lugar. Então, queria entender o porque esse método (enum) seria prejudicial pro código e se seria "errado" usar esse tipo de solução.

Segue implementação sugerida:

Imposto:

public enum Imposto {
    ISS(new BigDecimal("0.06")),
    ICMS(new BigDecimal("0.1"));

    private final BigDecimal taxa;

    public BigDecimal getTaxa() {
        return taxa;
    }

    Imposto(BigDecimal taxa) {
        this.taxa = taxa;
    }
}

Calculadora de impostos:

public class CalculadoraDeImpostos {
    public BigDecimal calcular(BigDecimal saldo, Imposto imposto) {
        BigDecimal taxaLiquida = new BigDecimal(1).subtract(imposto.getTaxa());
        return saldo.multiply(taxaLiquida);
    }
}
1 resposta
solução!

Ola! Tudo bem ?

Algumas vezes os instrutores precisam gerar uma situação para demonstrar algum novo conhecimento, talvez alguns casos sejam forçados demais, mas ainda assim são validos para passar a informação... A sua solução ficou bem massa e não teria o que reclamar dela num projeto real.