Problema com Singleton

Olá pessoal!!

Nossa…estou com um problema no meu codigo, não sei se entendi direito o padrao singleton, mas pelo que entendi ele seria unico, devo estar fazendo alguma mer… no codigo! Vejam!

Meu Singleton

[code]public class Sistema {

public static Sistema sistema		= null;
private Configuracao configuracao	= new Configuracao();
private SistemaTexto sistemaTexto	= new SistemaTexto();

private Sistema() {

}

public SistemaTexto getSistemaTexto() {
	return sistemaTexto;
}

public Configuracao getConfiguracao() {
	return configuracao;
}

public static Sistema getSistema() {

	if(sistema == null) {
		sistema = new Sistema();
	}

	return sistema;

}

}[/code]

[code]package sistema;

import dao.;
import daoHibernate.
;

public class Fabrica {

public static LinguaDao retornaLinguaDaoImplementacao() {

	if(Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("hibernate")) {
		return new LinguaDaoHibernate();
	} else if (Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("jdbc")) {
		//
	}

	return null;

}

public static TextoDao retornaTextoDaoImplementacao() {

	if(Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("hibernate")) {
		return new TextoDaoHibernate();
	} else if (Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("jdbc")) {
		//
	}

	return null;

}

public static ModuloDao retornaModuloDaoImplementacao() {

	if(Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("hibernate")) {
		return new ModuloDaoHibernate();
	} else if (Sistema.getSistema().getConfiguracao().getAcesso().equalsIgnoreCase("jdbc")) {
		//
	}

	return null;

}

}[/code]

Então, eu fiz o seguinte, no construtor da classe Sistema existem duas outras classes, “Configuracao” e “SistemaTexto” acontece que dentro da classe SistemaTexto eu chamo um metodo da classe “Fabrica” o “retornaTextoDaoImplementacao()” e nele como vocês podem ver eu pego uma informação que deveria estar no “Singleton” Sistema, mas por algum motivo quando eu chamo o metodo “Sistema.getSistema()” ele retorna “NULL”!! pq isso?

valew

Pra mim até a chamada de “Sistema.getSistema()” está tudo certo, verifica o resto.
E altere o atributo sistema para private.

vc precisa mesmo usar singleton :?: static :?:

Certo, agora desenvolva testes unitários nessa arquitetura e tente obter a maior cobertura de código (use o EMMA para medir, da pra integrar com o eclipse).

Depois pode descobrir pq singletons são do mal.

Sabe o que eu acho que esta acontecendo:

Dentro do objeto Sistema tem o Configuracao que chama o Fabrica, e o Fabrica chama o “Sistema”, mas o sistema ainda não foi finalizado. Acredito que seja isso…alguma ideia???

valew