Dúvida entre trechos de código

2 respostas
S
Não consegui identifcar a diferença entre esses códigos a seguir ...
public class DaoFactory {

	private final Session session;
	
	public DaoFactory() {
		session = new HibernateUtil().getSession();
	}
	
	public UsuarioDAO getUsuarioDAO(){
		return new UsuarioDAO(session);
	}
}
public class DaoFactory {

	private final Session session = new HibernateUtil().getSession();
		
	public UsuarioDAO getUsuarioDAO(){
		return new UsuarioDAO(session);
	}
}
public class DaoFactory {
	
	public DaoFactory() {
		Session session = new HibernateUtil().getSession();
	}
	
	public UsuarioDAO getUsuarioDAO(){
		return new UsuarioDAO(session);
	}
}

2 Respostas

ViniGodoy

O terceiro cria session como uma variável local do construtor. E, obviamente, não funciona, pois a variável session não existirá no segundo método.

O primeiro inicializa o atributo final no construtor. Não tem muita diferença do segundo, exceto pelo fato de que você poderia ter inicializações diferentes em construtores diferentes.

O melhor código, nesse caso, assumindo que o método getSession não dispare uma exception, é o segundo.

lina

Oi,

Eu utilizaria o primeiro código. Pelo fato de estar utilizando um construtor para criação da session.

O restante, o Vinni já disse.

Tchauzin!

Criado 26 de julho de 2010
Ultima resposta 26 de jul. de 2010
Respostas 2
Participantes 3