Por que usar encapsulamento de propriedades?

.NET

27/07/2012

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

Curtidas 0

Melhor post

Renato Groffe

Renato Groffe

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.
GOSTEI 1

Mais Respostas

Rachel Andrade

Rachel Andrade

27/07/2012

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.
GOSTEI 0
POSTAR