1
resposta

Quebra de encapsulamento na classe funcionario

public void atualizarSalario(BigDecimal novoSalario) {
        this.dadosPessoais.setSalario(novoSalario);
        this.dataUltimoReajuste = LocalDate.now();
    }

    public void promover(Cargo novoCargo) {
        this.dadosPessoais.setCargo(novoCargo);
    }

Lá na classe Funcionario ao definir os métodos acima, vc está quebrando o encapsulamento... visto que pode chamar esses caras diretos sem passar pelas validacoes, nesse caso o que sugere fazer?

1 resposta

Oi Bruno,

A grande questão é que dificilmente teremos uma solução que somente terá vantagens. Sempre uma solução terá também suas desvantagens e as vezes uma solução favorece algum princípio SOLID e/ou da orientação a objetos, mas pode estar "ferindo" outros.

Então ideal é sempre avaliar as vantagens e desvantagens de cada solução e ponderar quando vale a pena utilizar cada uma.

Bons estudos!