Encapsulamento

Encapsulamento é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. Por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.

 Assim que uma classe é criada, seu código e seus dados, os quais são chamados de membros da classe, são determinados. Esses dados recebem o nome de variáveis membro ou variáveis de instância. Já o código tem outra função de formar os métodos, os quais também podem ser denominados como métodos membro.

 Os métodos presentes em um programa desenvolvido em C# são responsáveis por determinar a maneira como serão utilizadas as variáveis membro, o que indica que os métodos cuja função é operar sobre os dados de instância de uma classe determinam qual será a interface e o comportamento apresentados por ela.

Obs: Em um artigo futuro veremos os conceitos e exemplo prático sobre Interfaces.

 Tendo em mente que os métodos e as variáveis de uma classe podem ser definidos como públicos ou privados, temos a seguinte situação:

 - Tudo o que o usuário externo precisa conhecer a respeito de uma classe encontra-se em propriedades ou métodos declarados como públicos (public).

 - Somente os códigos membros da classe são capazes de acessar seus métodos e variáveis privados. Isso garante que não ocorrerão ações inadequadas, mas exige que a interface pública seja planejada com cautela para que o funcionamento interno da classe não seja muito exposto.

 Dito tudo isto, podemos concluir que a única forma de conhecer ou alterar os atributos de um objeto é por meio de seus métodos. Abaixo cito quatro vantagens do encapsulamento:

·          O objeto é disponibilizado ao usuário com toda a sua funcionalidade, sem a necessidade de conhecermos seu funcionamento ou armazenamento interno;



·          É possível modificar um objeto internamente, acrescentando métodos, sem que isto afete os outros componentes do sistema que utilizam o objeto modificado;



·          O processo de desenvolvimento de sistemas é acelerado e simplificado, já que os usuários dos objetos não precisam necessariamente saber como eles são constituídos internamente;



·          A implementação de um comportamento pode ser modificada radicalmente sem que haja impacto no resto do programa. Isto é possível porque o código que utiliza o objeto não depende da maneira que ele é implementado

Nenhum comentário:

Postar um comentário