information hiding, ocultamento de informações:
Na programação, o "ocultamento de informações" (information hiding) é uma técnica de projeto de sistemas que visa esconder detalhes de implementação de módulos ou sub-rotinas de outras rotinas que utilizam esses módulos. O objetivo é evitar que as rotinas dependentes sejam afetadas por alterações na implementação dos módulos e garantir que o sistema possa ser alterado e evoluído com mais facilidade.
A ideia de ocultar informações pode ser exemplificada pelo uso de uma caixa preta em um sistema. Os detalhes internos da caixa são irrelevantes para quem a utiliza; o importante é apenas saber como utilizá-la corretamente e obter os resultados esperados. Da mesma forma, na programação, os detalhes de implementação de um módulo ou sub-rotina não são relevantes para quem o utiliza.
Um exemplo de como o ocultamento de informações é implementado pode ser visto em uma classe em Java. Uma classe é composta por atributos (variáveis) e métodos (funções). O ocultamento de informações é obtido ao se declarar os atributos como privados e disponibilizar métodos públicos para acessá-los e modificá-los. Dessa forma, os usuários da classe não precisam saber como os atributos são armazenados ou processados internamente; eles apenas utilizam os métodos fornecidos.
Características:
- Ocultamento de informações é uma técnica de projeto de sistemas de software.
- Visa esconder detalhes de implementação de módulos ou sub-rotinas de outras rotinas que os utilizam.
- O objetivo é evitar que as rotinas dependentes sejam afetadas por alterações na implementação dos módulos.
- Possibilita que o sistema seja alterado e evoluído com mais facilidade.
- É obtido ao se declarar atributos como privados e disponibilizar métodos públicos para acessá-los e modificá-los.
Vantagens:
- Facilita a manutenção do código, uma vez que as mudanças em um módulo ou sub-rotina não afetarão as outras rotinas que o utilizam.
- Permite o desenvolvimento mais rápido do sistema, já que as rotinas dependentes não precisam conhecer detalhes de implementação.
- Possibilita a evolução do sistema de forma mais fácil, pois mudanças internas podem ser feitas sem afetar o funcionamento das rotinas dependentes.
Desvantagens:
- Pode aumentar a complexidade do código, pois é necessário criar métodos públicos para acessar e modificar os atributos privados.
- Pode ser menos eficiente em termos de desempenho, já que os métodos públicos precisam ser chamados em vez de acessar diretamente os atributos privados.
- Requer um cuidado especial na definição de interfaces entre módulos, para que o ocultamento de informações seja bem-sucedido.
O "ocultamento de informações" é uma técnica importante de projeto de sistemas de software que visa garantir a independência entre módulos ou sub-rotinas. Embora possa aumentar a complexidade do código e diminuir a eficiência em termos de desempenho, suas vantagens em termos de manutenção, desenvolvimento rápido e evolução do sistema são fundamentais para projetos de software de grande porte e complexidade.