Michael,

É verdade. Mas foi proposital. Não quis entrar no detalhe da sincronização. 

Para quem quiser maiores detalhes, com algumas recomendações da sun, olhe em

http://developer.java.sun.com/developer/technicalArticles/Programming/single
tons/

Uma outra técnica muito boa que garante a sincronização na criação da
instância, mas não no retorno da mesma:

public static Singleton getInstance()
{
        if (instance == null)
                createInstance();
        return instance;
}       

private static synchronized void createInstance()
{
        if (instance == null)
                instance = new Singleton();
}


Assim eu só tenho a sincronização na criação da instância única (para evitar
que sejam criadas mais do que uma) e não no simples retorno da instância.

abraços

Jorge

-----Original Message-----
From: Michael [mailto:[EMAIL PROTECTED]]
Sent: sexta-feira, 21 de setembro de 2001 00:51
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Classe


Mais uma "correcao":

-----Mensagem Original-----
De: "Jorge Martins" <[EMAIL PROTECTED]>
Assunto: RE: [java-list] Classe


>Corrigindo o método getInstance():

>/* método de classe para retorno da instância >única */
>public static Singleton getInstance()
>{

synchronized(Singleton.class) {

>if (instance == null)
>instance = new Singleton();

}

>return instance;
>}


>Faltou o principal: retorna a instância!!

E tambem garantir que somente uma instancia pode ser criada... :-)

>abraços

>Jorge

---------------------------------------------------------------------
Michael Nascimento Santos
Analista de Sistemas
Sun Certified Programmer for the Java 2 Platform

-----Original Message-----
From: Jorge Martins
Sent: quinta-feira, 20 de setembro de 2001 11:41
To: '[EMAIL PROTECTED]'
Subject: RE: [java-list] Classe


Singleton é um design pattern que tem como objetivo garantir a existência de
apenas um objeto de uma classe na aplicação.

Aqui vai um template:

class Singleton
{
/* método de classe para retorno da instância única */
public static Singleton getInstance()
{
if (instance == null)
instance = new Singleton();
}

/* instância única */
private static Singleton instance;

/* construtor privado */
private Singleton()
{
}
}

A única forma de acessar um objeto desta classe é através do método
getInstance(), pois o construtor é privado.

abraços

Jorge

-----Original Message-----
From: Marcus Augusto [mailto:[EMAIL PROTECTED]]
Sent: quinta-feira, 20 de setembro de 2001 10:15
To: [EMAIL PROTECTED]
Subject: [java-list] Classe


Olá a todos,

Por favor, alguém poderia me explicar o que é uma classe singleton ?

Obrigado,

Marcus Augusto
-------------------------------
http://www.brfree.com.br - O primeiro provedor gratuito do Brasil

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a