Obrigado Bruno
Mas o meu problema não era quanto a implementação e sim do comportamento
deste design pattern em JSP/Servlets. Após pequenos testes, pude perceber
que o escopo do objeto único (o static Singleton.instance) é de aplicação.
Gostaria que fosse de sessão.
Dê uma lida na série de mensagens que eu troquei com o Clebert. Chegamos
a conclusão que terei que extender o conceito do Singleton, para que a
classe controle um objeto para cada sessão. Basicamente farei uma hashtable
e o método getInstance() terá um parâmetro session.
Ainda não estou satisfeito com esse modelo, pois acaba com minha
transparência. Eu gostaria que meus componentes usassem o método
getInstance() sem passar parâmetros e, de alguma forma que ainda não sei,
minha classe Singleton retorna-se o objeto único daquela sessão.
Estou pensando em minha classe Singleton acessar uma variável de ambiente
SESSION no método getInstance(). Esta variável, com escopo de sessão,
armazenaria a sessão do usuário. Assim, com esta informação, Singleton pode
retornar o objeto apropriado.
Isto funciona? Como eu acesso variáveis de ambiente em java? Isso não
faria com que minha classe Singleton ficasse restrita ao ambiente webserver?
Irei estudar um pouco mais e realizar alguns testes. Qualquer dica, por
favor, envie. Será muito bem vinda.
um abraço
Jorge
-----Original Message-----
From: Bruno Augusto Vivas e Possas [mailto:[EMAIL PROTECTED]]
Sent: terça-feira, 24 de outubro de 2000 20:42
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Design Pattern Singleton
On Tue, 24 Oct 2000, Jorge Martins wrote:
>Alguém já implementou o design pattern Singleton para ser usado em páginas
>JSP? A idéia é transparentemente manter um instância única de uma classe
>através de uma sessão. Assim meus outros componentes beans utilizariam esta
>classe com o comando Singleton.getIsntance().
>
>Exemplo:
>
>class Singleton () - classe com única instância. Para acessá-la deve-se
>utilizar o método estático getInstance().
Caro Jorge,
matenha uma variável estática na sua classe(instance), que corresponderá a
instância única. Faça com que o construtor da sua classe Singleton seja
private para garantir que a única forma de ter um objeto dessa classe seja
através da chamada ao método getInstance(). Implemente o metodo estático
getInstance(). Assim você terá uma Singleton. Abaixo, mostro a implementação
que normalmente uso.
public class Singleton {
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
private static Singleton instance = null;
}
>um abraço
>
>Jorge Roberto Diniz Martins
>[EMAIL PROTECTED]
>
Abraços,
Bruno Augusto Vivas e Possas
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
Linux user number 100453
<http:/www.dcc.ufmg.br/~bavep>
------------------------------ 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]
-------------------------------------------------------------------------