instância única

5 respostas
C

Dá pra criar uma classe de maneira que somente uma instância dela possa ser gerada e quem quiser usar uma instância da classe tenha que usar sempre essa?

5 Respostas

aeciovc

isso chama-se Singletoon.

mais o menos isso:

public Conexao getInstance(){

if (this.conexao == null)
    //Instancia Conexao e jogo no Objeto de Conexão da Classe

return this.conexao;

procure por singletoon que vc vai econtrar bastante coisa!

Priuli

você esta falando do padrão singleton, uma classe que só tem um instancia na aplicação…

Exemplo:

public class MinhaClasse{

private static MinhaClasse minhaClasse;

private MinhaClasse(){
}

public static MinhaClasse getInstance(){
if(minhaClasse == null)
this.minhaClasse = new MinhaClasse();

return this.minhaClasse;
}

}

Para utilizar seria assim: MinhaClasse.getInstance()

ViniGodoy

É mais correto em java implementar o singleton assim:

public class MinhaClasse {
   private static final MinhaClasse instancia = new MinhaClasse();

   private MinhaClasse() {}

   public static MinhaClasse getInstance() {
      return instance;
   }
}

Além de mais simples, é mais seguro em ambientes multi-thread.

E

ViniGodoy,

O atributo instancia não deveria ser privado?

ViniGodoy

ops, tem sim. Já arrumei.

Criado 1 de outubro de 2010
Ultima resposta 1 de out. de 2010
Respostas 5
Participantes 5