Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais

Refatoração em Java: early return na prática

Refatoração em Java: early return na prática

Quero calcular o imposto de um investimento. A regra é simples:

Se o saldo for maior que mil reais, pagamos 10 porcento de taxa. Se o saldo for maior que 500 até exatos 1000, o imposto é 5%. Caso o saldo seja menor ou igual a 500, o imposto é 1%.

Me diz em 5 segundos se a implementação a seguir está correta?

Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

double calculaImposto() { 
    double taxa = 0; 
    if(saldo > 1000) { taxa = 0.1; } 
        else { 
            if(saldo > 500) { taxa = 0.05; } 
                else { taxa = 0.01; } 
                    } 
                    return saldo * taxa;
}

Para uma regra de três condições, algo tão simples... conseguimos complicar horrores na hora de implementar. Imagine em regras do mundo real, ainda mais complexas?

Complicado né? Que tal retornarmos logo?

 double calculaImposto() { 
     if(saldo > 1000) return 0.1 * saldo;

if(saldo > 500) { 
    return 0.05 * saldo;
}
return 0.01 * saldo; } 

Agora sim, em 5 segundos bate o olho no código, ooooutra história! Os elses desaparecem...

Esse é o retorno rápido, o early return.

Se eu quero retornar um valor, retorno poxa! Esse é um pequeno exemplo do poder da refatoração.

Guilherme Silveira
Guilherme Silveira

Co-fundador da Alura, da Caelum e do GUJ. Com 18 anos de ensino nas áreas de programação e dados, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

Veja outros artigos sobre Programação