Implementação do Singleton

Ola Pessoal,

Preciso implementar um Singleton (eu acho :? ) … minha aplicação tem uma GUI e eu só posso permitir uma tela …

Meu codigo (resumido):

[code]
public final class AppFaturamento
extends Observable
implements IObservable
{
/** Instancia única deste objeto*/
private static final AppFaturamento _theInstance = new AppFaturamento();

/Construtor/
private AppFaturamento() {
//instancia minha GUI (outra classe)
//mostra, etc. e tal
}

/* Carrega a instancia */
public static AppFaturamento getInstance() {
return _theInstance;
}

/**
 * Entrada do programa.
 */
public static void main(String[] args) {
	AppFaturamento.getInstance();
}	

}[/code]

Mas ele esta instanciando varios objetos da minha classe …

Imagino que to errando no Singleton :oops:

Observações, URLS?

Valeu

[]s

Voce voce esta iniciando duas aplicacoes distintas, entao realmente seria criado duas estaticas, ja que sao areas de memoria diferentes ( ao contario do que acontece em servlets, por exemplo ).

Se quiser impedir que o usuario rode mais de uma instancia do programa, voce pode fazer algo mais arcaico, como criar um arquivo de lock em disco e verificar se ele existe… se existir, ja tem um programa rodando ( claro que isso eh bem sujeito a problemas do tipo “programa quebra e nao remove o lock”, mas serve mais como ideia do que como implementacao )

Rafael

Outra idéia talvez algo parecido com o que o rafael disse, é colocar um Socket Server em uma porta definida por vc, e fazer tratamento de erros caso uma segunda instancia do Socket Server for subir. Assim vc já sabe que existe uma copia em execução, dá uma mensagem e finaliza o programa.

[]s, Welington B. Souza