information hidingocultamento 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.