Por que usar encapsulamento de propriedades?

27/07/2012

0

Olá, galera do fórum!

Estou eu aqui novamente com dúvidas relacionadas a programação em .NET, mas dessa vez acho que a questão é um pouco mais geral.

Estou estudando POO e até agora não entendi por que devemos usar o encapsulamento de propriedades. Por exemplo, uma classe com a propriedade Nome.
Por que eu devo fazer assim:
private string _nome;
public string Nome
{
get{return this._nome;}
set{this._nome = value;}
}


ao invés de fazer assim diretamente:
public string Nome;


Entendi que no get e set eu posso, por exemplo, fazer validações ou executar outras ações com os atributos antes de retorná-los ou defini-los, mas fora isso, não consigo enxergar motivo para usar o encapsulamento.

Agradeço desde já.
Rachel Andrade

Rachel Andrade

Responder

Post mais votado

31/07/2012

Rachel,


Realmente, um dos motivos para o uso do conceito de encapsulamento é evitar que valores inválidos sejam associados a uma propriedade. Nesse caso, você poderia executar uma série de checagens, gerando inclusive erros se determinadas condições não forem atendidas.

Agora, para efeitos de simplificação, se suas propriedades não terão nada deste tipo, você pode simplesmente usar algo como:

public string Nome { get; set; }

Essa construção dispensa assim a declaração de uma variável interna na classe.

Ainda sobre o encapsulamento, controles visuais podem normalmente utilizar bastante este tipo de técnica. Supondo que você configure a propriedade Visible de um componente que não aparecia em tela. Ao fazer isso, internamente, um evento pode ser disparado, acionando uma série de tratamentos.

Mesmo alguma coisa específica que você implemente pode se beneficiar deste comportamento. Toda vez que você alterar uma propriedade, um evento ser disparado (se um método correspondente tiver sido configurado).

Espero que a explicação que fiz tenha lhe ajudado.

Renato Groffe

Renato Groffe
Responder

Mais Posts

31/07/2012

Rachel Andrade

Oi, Renato.
Novamente muito obrigado pela ajuda. Suas respostas, sem dúvida, têm me ajudado bastante em meus estudos.
Agora sim deu pra compreender melhor a razão de ser do encapsulamento.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar