3
respostas

new AutenticacaoUtil no construtor ou no atributo ?

Boa tarde, ao invés de criar um construtor na classe Cliente para fazer :

this.autenticador = new AutenticacaoUtil();

Eu poderia na especificação do atributo já instanciar ?

private AutenticacaoUtil autenticador = new AutenticacaoUtil();

Ou não é aconselhável ?

Obrigado

3 respostas

Oi Marco, tudo bem? Você pode, mas não vejo isso como uma recomendação. O construtor vai criar o objeto só quando de fato for necessário. Entende? Quando X for criado, ai sim faz sentido ter o AutenticacaoUtil criado.

A ideia é essa. A não ser que você explique um cenário que faça sentido fazer diferente.

Boa noite Wanderson.

Desculpe eu não entendi.

Desta maneira :
private AutenticacaoUtil autenticador = new AutenticacaoUtil();

Este atributo da classe X não será inicializado somente quando eu fizer o new desta classe X ?

Ou é pq é considerado má prática ?

Desculpe se estiver falando alguma besteira, não tenho prática no Java.

Valeu.

Oi Marco, tudo bem ?

Não há tanto problema em fazer dessa forma não.

Contudo você vai ver que acaba gerando um alto acoplamento do seu código, um dos principios do solid - orientação a objetos "avançada"- diz que um objeto não deveria conhecer o outro, por isso existe um conceito conhecido como inversão de dependecia que é uma grande motivação para falar de Injeção de Dependencias.