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