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

[Sugestão] Refatorei o Enum Desempenho

Bom dia a todos Estava revisando a matéria e tava dando uma olhada e percebi que o código do Enum Desempenho estava mal otimizado:

public enum Desempenho {
    A_DESEJAR {
            @Override
            public BigDecimal percentualReajuste() {
                    return new BigDecimal("0.03");
            }
    },
    BOM {
            @Override
            public BigDecimal percentualReajuste() {
                    return new BigDecimal("0.15");
            }
    },
    OTIMO {
            @Override
            public BigDecimal percentualReajuste() {
                    return new BigDecimal("0.2");
            }
    };

    public abstract BigDecimal percentualReajuste();

}

Se eu colocasse um atributo para armazenar o valor de percentual de reajuste, o construtor para colocar o valor entre parênteses junto com os Enum, poderia fazer o métodopercentualReajuste() apenas 1 vez e os Enum A_DESEJAR, BOM e OTIMO armazenariam apenas os valores, e o código ficaria assim:

package br.com.alura.tdd.service;

import java.math.BigDecimal;

public enum Desempenho {
    A_DESEJAR(new BigDecimal("0.03")), BOM(new BigDecimal("0.15")),
    OTIMO(new BigDecimal("0.2"));

    private BigDecimal valor;

    Desempenho(BigDecimal valor) {
        this.valor = valor;
    }

    public BigDecimal percentualReajuste() {
        return valor;
    };
}

Fiz todos os testes no Junit e deram certos, com isso, se precisar refatorar o método percentualReajuste() só preciso fazer 1 vez, ao invés de 3. E os Enum ficaram mais fáceis de visualizar o que armazenam

1 resposta
solução!

Oi Murilo!

Legal! Dessa forma o código ficou mais enxuto e fácil de ler :)

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software