Oi Rafael,
Pois é, acaba sendo um problema difícil de resolver de uma maneira sem gerar impactos.
Talvez uma alternativa seria alterar a visibilidade do método atualizarSalario
da classe Funcionario
para package-private:
void atualizarSalario(BigDecimal novoSalario) {
//codigo...
}
E alterar a estrutura de pacotes da aplicação, movendo a classe ReajusteService
para o mesmo pacote da classe Funcionario
, para que ela consiga enxergar o método atualizarSalario
.
Assim dá para garantir que apenas as classe dentro desse pacote enxerguem o método atualizarSalario
, impedindo que de fora ele seja chamado.
Perceba então como essa é uma discussão meio complexa, pois precisamos avaliar os tradeoffs de cada solução, para decidir qual delas será utilizada.
Bons estudos!