Encapsulamento (programação)

Em programação , encapsulamento se refere ao agrupamento de dados com um conjunto de rotinas que permitem sua leitura e manipulação. Este princípio é freqüentemente acompanhado pelo mascaramento desses dados brutos, a fim de garantir que o usuário não ignore a interface destinada a ele. O todo é então considerado como uma caixa preta com um comportamento e propriedades especificados.

O encapsulamento é um pilar da programação orientada a objetos , onde cada classe define métodos ou propriedades para interagir com membros de dados, mas este princípio pode ser encontrado em outros estilos de programação (por exemplo, programação modular ).

Motivações

Implementação

Os princípios de encapsulamento são aplicados de maneiras muito diferentes dependendo do idioma. Mas ainda podemos encontrar duas correntes principais.

Primeiro, uma aplicação relativamente estrita dos princípios em linguagens puras de objetos (desde que esse termo tenha algum significado), como em SmallTalk ou Eiffel . Nesse contexto, os atributos muitas vezes só estão disponíveis para leitura em geral no programa e também para escrita de dentro da classe de objeto. Em seguida, encontramos vários meios de adaptar essa estrutura a classes amigáveis ou a categorias e hierarquias de objetos.

Em segundo lugar, linguagens como C ++ , Java ou Ruby e, mais geralmente, todas as linguagens influenciadas pela sintaxe de C ++, que ofereciam três níveis de visibilidade:

Na verdade, esse tipo de encapsulamento fornece outra abordagem para o encapsulamento que não distingue entre ler e escrever um atributo. Neste contexto, também é possível utilizar métodos de acesso e modificação definidos em um desses níveis de visibilidade de acordo com o efeito que se deseja obter. Freqüentemente, os métodos de ambos os tipos são definidos além do atributo que realmente contém os dados. Finalmente, significa permitir que outras classes e funções livres acessem livremente todos os atributos de uma classe, como é o caso com classes e funções amigáveis ​​em C ++.

Notas e referências

  1. (em) Wm. Paul Rogers , "  Encapsulation is not hide information  " , JavaWorld ,18 de maio de 2001( leia online , consultado em 9 de dezembro de 2016 )

Veja também