Factory de DAO dinâmico

2 respostas
ivo_costa

Pessoal assim funciona:

public abstract class BaseService<E extends Persistable, F extends AbstractDAO><E>> {

	private AbstractDAO<E> getDAO(){
		return ReflectionUtils.newInstance(getDaoClass());
	}
	
	protected abstract Class<? extends F> getDaoClass();
	
}

Mas eu gostaria de fazer algo do tipo:

public abstract class BaseService<E extends Persistable, F extends AbstractDAO><E>> {
	private AbstractDAO<E> getDAO(){
		F clazz;
		
		return ReflectionUtils.newInstance(clazz.getClass());
		//ou
		return ReflectionUtils.newInstance(Class<F>);
	}
}

Ou seja, da para fazer sem obrigar a enviar a classe com o método “getDaoClass”?

2 Respostas

leassis

Amigo
ao invés de usar o factory, vc já pensou em usar injecao de dependencias?
Eu abandonei factory de daos a anos, uso dao sempre injetados.

outra coisa, no seu exemplo, a cada chamada vc cria uma nova instancia de dao. Eu não acho isso interessante, para mim DAO tem que ser stateless, então vc pode usar a mesma instancia.

ivo_costa

Eu nao sei como ficaria usando injecao e projeto jah está no ar nao da para fazer muito refactoring.
Isso que eu estou tentando fazer soh alteraria uma classe.

Criado 29 de abril de 2010
Ultima resposta 29 de abr. de 2010
Respostas 2
Participantes 2