public class ReajusteService {
    public void concederReajuste(Funcionario funcionario, Desempenho desempenho) {
        if(desempenho == Desempenho.A_DESEJAR) {
            BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.03"));
            funcionario.reajustarSalario(reajuste);
        } else if(desempenho == Desempenho.BOM) {
            BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.15"));
            funcionario.reajustarSalario(reajuste);    
        } else if(desempenho == Desempenho.OTIMO) {
            BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.20"));
            funcionario.reajustarSalario(reajuste);    
        }
    }
}Pensando num futuro, onde a empresa queira implementar outros tipos de Desempenho, como exemplo: RUIM, PESSIMO, EXCELENTE. Nosso método vai começar a ficar grande, pensar em desmembrar cada um desses desempenhos, criando uma interface com o método concederReajuste e criar uma classe para cada tipo de desempenho, e implementar cada um a sua maneira, e criar uma classe de teste para cada tipo de desempenho também, seria uma boa prática de desenvolvimento???