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]
-------------------------------------------------------------------------