Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Estou com dúvida no curso de Design Patterns para bons programadores, no exercício 4 do capítulo A grande variedade de impostos e o padrão Strategy.

Daria para refatorar if que decide qual taxa usar? Seria bom?

package strategy;

public class ICCC implements Imposto {

    @Override
    public double calcula(Orcamento orcamento, Taxa taxa) {
        return taxa.getValor(orcamento.getValor());
    }

}
package strategy;

public class MenorQue1000 implements Taxa {

    @Override
    public double getValor(double valor){
        return valor * 0.08;
    }

}
4 respostas

Oi Camila,

Como você tem apenas 3 ifs/else-ifs não vejo muito problema. Agora, se isso for crescer mais ainda, talvez valha a pena começar a quebrar isso em outras classes.

Você tem alguma ideia de como fazer isso? O que mais tem aqui nesse curso são padrões pra te ajudar nisso! :)

Lembre-se que usar um padrão é legal e traz flexibilidade; mas flexibilidade gera complexidade! Um abraço!

Obrigada! Eu pensei em usar o Chain of Responsibility como ideia, faz sentido?

solução

Oi Camila,

Como esses ifs são bem relacionados a regra de negócio daquele imposto, eu pensaria duas vezes antes de separá-los em múltiplas classes.

Acho que meu primeiro passo seria extrair em métodos privados. Se ainda assim, ficou complicado, aí separaria.

O que acha?

Entendi a explicação, obrigada Mauricio.