🙄 “Esconder do usuário”? Nem sempre...
Você já deve ter lido por aí:
“Encapsulamento é esconder os detalhes internos da classe. Mostre apenas o que importa.”
Mas essa explicação quase sempre soa vaga demais. Esconder de quem, afinal? Do usuário do sistema? Do programador júnior? Do estagiário? 🤔
Na prática, quem vai usar a classe é outra parte do sistema, ou outro programador que pode até ser você mesmo no mês que vem. E quando você escreve:
Motor.FTemperaturaInterna := 300; // Não deveria poder fazer isso!Você não está “enganando o usuário” — está rompendo uma regra do motor que pode comprometer todo o funcionamento do carro.
✅ O verdadeiro motivo para encapsular
Você encapsula porque quer garantir que as regras internas do seu objeto sejam respeitadas.
- Você não quer que outra classe altere a temperatura interna do motor diretamente — isso deve ser responsabilidade de sensores e algoritmos internos.
- Você quer garantir que o método
Acelerarsiga uma lógica segura e controlada, sem ser burlado por modificações externas. - Você quer ter controle total sobre o que entra e sai da sua classe.
Encapsular é como definir as regras do jogo. Você está dizendo:
"Se quiser interagir comigo, use essa porta de entrada. O que tem lá dentro é meu território, e eu garanto que está funcionando do jeito certo."
Exemplo prático
Imagine que alguém do sistema decide acessar diretamente uma variável do motor:
MeuCarro.Motor.FMisturaCombustivel := 100; // Isso quebra todo o equilíbrio!Você não quer isso. Em vez disso, você oferece um método:
MeuCarro.Motor.Acelerar;Esse método sabe o que está fazendo, respeita os limites do sistema e garante que tudo funcione corretamente.
🧠 Resumindo
- Encapsulamento não é sobre esconder por esconder.
- É sobre proteger a integridade do sistema, evitar erros, manter regras internas, e permitir evolução futura sem quebrar o resto.
- Você não está escondendo do usuário — está construindo limites claros para garantir que tudo funcione como deveria.