Boa tarde,
Na aula sobre coesão em resumo o instrutor fala sobre a importância de separar em outras classes métodos que não são responsabilidades da classe.
Nesta aula https://cursos.alura.com.br/course/solid-orientacao-objetos-java/task/85733 posterior a sobre coesão, sobre encapsulamento o instrutor mostra um model de funcionario e dentro dele, um método para o aumento de salario. A justificativa é que ali ninguém vai poder alterar o salario do funcionário e ficaria bem protegido, diferente de ter get and set para o atributo salario.
Minha pergunta é... a classe possui um set salario... se alguem injetar a classe funcionario e usar o metodo set salario pode alterar o valor do salario sem problemas, ou seja, esse encapsulamento para proteção não adiantou de nada, certo? Segue o exemplo:
public class Exemplo {
.....
@AutoWired
Funcionario funcionario;
funcionario.setSalario (5000);
Outra coisa, se é importante separar métodos, e ali é um método especifico para salario, não seria melhor ter uma outra classe com esses métodos, por exemplo uma classe sei la FuncionarioUtil e separar todos os metodos referentes a funcionarios la ?