Voltar para Home
por Eliezer Brasilian

Encapsulamento burro

Esses dias eu estava passeado pelo LinkedIn, até que veio o post de um usuário na plataforma que não vou citar o nome por motivos óbvios mas que no post mostrava que aprendeu encapsulamento usando Java. No entanto o que ele aprendera foi o que eu costumo chamar de "encapsulamento burro". O que seria encapsulamento burro, afinal de contas? É quando você cria um set e um get para um campo privado na sua classe e que não acontece nenhum tratamento, nenhuma validação sequer, absolutamente nada, e com isso você só ganha um código poluído e verboso.

print

Exemplo do que nosso usuário criou:

class Produto{
private String name;

public setName(String name){
this.name = name;
}

public getName(){
return this.name;
}
//...

Observem que não tem nenhuma validação, então esse código não traz nenhuma vantagem, a única coisa que ele traz é verbosidade, pois quando ele mesmo tiver que atualizar o campo nome, ele terá que usar um método setName e para buscar o dado, terá que usar um getName, pra quê? Pra nada! Nesse tipo de cenário, você concorda que faria muito mais sentido deixar o campo público diretamente, visto que esse campo "name" é implicitamente público.

public String name;

Esse campo é implicitamente público pois de qualquer lugar ele pode fazer get ou set dele, o que quer dizer que você pode obter e atualizar esse campo sempre que desejar, nesse caso seria muito mais cômodo e menos verboso deixá-lo público de uma vez. Eu entendo que a ânsia de aprender e aplicar o que viu é tentadora, mas as vezes é muito importante avaliar e pensar um pouco "pera aí?!, Isso tá certo? Será que isso realmente é uma boa prática?".