Bom dia. Eu entendo que o intuito do professor foi implementar uma Interface pra utilizar as regras de validação mas fiquei com uma dúvida:
A interface assina dois atributos (um objeto funcionário e um aumento):
public interface ValidacaoReajuste {
void validar(Funcionario funcionario, BigDecimal aumento);
}
Porém, concordem comigo que pra verificar uma periodicidade de aumento é irrelevante o quanto é o aumento? Tanto que a variável aumento não foi utilizada no exemplo do professor:
public class ValidacaoPeriodicidadeReajuste implements ValidacaoReajuste{
public void validar(Funcionario funcionario, BigDecimal aumento) {
LocalDate dataUltimoReajuste = funcionario.getDataUltimoReajuste();
LocalDate dataAtual = LocalDate.now();
long mesesDesdeUltimoReajuste = ChronoUnit.MONTHS.between(dataUltimoReajuste, dataAtual);
if(mesesDesdeUltimoReajuste < 6) {
throw new ValidacaoException("Intervalo entre reajustes deve ser maior que 6 meses");
}
}
}
A dúvida seria, não seria necessário sempre utilizar todos os atributos que foram assinados na interface lá nas implementações? Porque se for, como faz com a questão do aumento que não é utilizado?