Também seria uma abordagem válida criar o método:
public void atualizarDataDoUltimoReajuste() {
this.dataUltimoReajuste = LocalDate.now();
}
E chamá-lo dentro do método reajustarSalarioDoFuncionario:
public void reajustarSalarioDoFuncionario(Funcionario funcionario, BigDecimal aumento){
BigDecimal salarioAtual = funcionario.getSalario();
BigDecimal percentualReajuste = aumento.divide(salarioAtual, RoundingMode.HALF_UP);
if (percentualReajuste.compareTo(new BigDecimal("0.4")) > 0) {
throw new ValidacaoException("Reajuste nao pode ser superior a 40% do salario!");
}
BigDecimal salarioReajustado = salarioAtual.add(aumento);
funcionario.atualizarSalario(salarioReajustado);
funcionario.atualizarDataDoUltimoReajuste();
}
Ou até mesmo deixá-lo como private e chamá-lo dentro do método atualizarSalario.
Pois uma vez li que métodos são feitos para executar funções bem definidas. Dessa forma, cada método lida com suas responsabilidades.
Por fim, essas duas formas também seriam abordagens válidas?