Dependendo do que voce quer fazer, nao e' preciso nada disso!
A propria classe HttpSession e' um "singleton para a sessao", e pode
guardar objetos.
Assim, todos os threads duma mesma sessao podem compartilhar os mesmos
objetos.
HttpSession session = request.getSession(true);
session.putValue("meuobjeto", new MeuObjeto());
--
Eduardo Ito
Jorge Martins wrote:
>
> Saquei como se faz. � justamente como eu estava pensando. � um padr�o
> muito interessante mesmo, uma extens�o do Singleton (pela id�ia da classe
> controlar o acesso ao seu objeto) com o detalhe que agora haver� multiplas
> inst�ncias. �... J� podemos documentar, escrever um paper e buscar nosso
> espa�o no meio acad�mico. :)
>
> As classes Dictionary e Hastable manuseiam Objects. Vale a pena
> expecilaliz�-las (criando minhas pr�prias classes) para melhora de
> performance. Sei que esta estrat�gia � interessante a classe Vector pela
> facilidade de implementa��o e aumento no desempenho.
>
> obrigado
>
> Jorge
>
> ps: tem a dica de algum tutorial para a implementa��o da solu��o por EJB?
>
> -----Original Message-----
> From: Clebert Rezende Suconic [mailto:[EMAIL PROTECTED]]
> Sent: quarta-feira, 25 de outubro de 2000 11:54
> To: [EMAIL PROTECTED]; Jorge Martins
> Subject: Re: [java-list] Design Pattern Singleton
>
> Utilize a classe dictionary ou Hashtable.
>
> Voc� poder� ter um �ndice para cada propriedade.
>
> Na verdade voc� estar� misturando dois patterns. O FactoryObject e o
> Singleton. N�o sei se existe um pattern documentado baseado em propriedades.
>
> public class MinhaClasseSingleton
> {
> private MinhaClasseSingleton()
> {
> }
>
> private static Hashtable instanceHashSingleton;
>
> /// Pseudo c�digo, de uma olhada no help para ver como sao os
> comandos de verdade
> // Se desejar mudar para outra variavel....
> public synchronized static MinhaClasseSingleton getInstance(Object
> secao)
> {
> MinhaClasseSingleton findedInstance=null;
>
> // TODO - Procure na hash a secao valida para o objeto secao
>
> if (findedInstance==null)
> {
> findedInstance= new MinhaClasseSingleton();
> // Execute o put na hashTable
> }
>
> return findedInstance;
> }
> }
>
> ----- Original Message -----
> From: Jorge Martins <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, October 25, 2000 10:13 AM
> Subject: RE: [java-list] Design Pattern Singleton
>
> > J� tinha pensado em fazer algo assim. E realmente, a melhor alternativa
> �
> > utilizar o c�digo da se��o como �ndice. Mas como encapsular via
> dicion�rio?
> > N�o entendi. Tamb�m n�o tenho conhecimento sobre EJB, logo pode vir a se
> > tornar uma alternativa futura. A id�ia de um objeto remoto controlando
> isto
> > me agrada.
> >
> > obrigado
> >
> > Jorge
> >
> > -----Original Message-----
> > From: Clebert Rezende Suconic [mailto:[EMAIL PROTECTED]]
> > Sent: ter�a-feira, 24 de outubro de 2000 20:33
> > To: Jorge Martins
> > Subject: Re: [java-list] Design Pattern Singleton
> >
> >
> > Voc� poderia utilizar Singleton, se coloca-se um m�todo getInstance(int
> > codigoSecao), e encapsula-se o uso da se��o via
> > Dicion�rio.
> >
> >
> > Voc� tamb�m poderia fazer isto, utilizando um EJB atrav�z de um Entity
> > Object utilizando o c�digo da Se��o, ou o c�digo do usu�rio. poderia at�
> > armazenar em um cookie. Que ali�s acho o mais interessante.
> >
> >
> > O que voc� acha?
> >
> > ----- Original Message -----
> > From: Jorge Martins <[EMAIL PROTECTED]>
> > To: 'Clebert Rezende Suconic' <[EMAIL PROTECTED]>
> > Sent: Tuesday, October 24, 2000 8:16 PM
> > Subject: RE: [java-list] Design Pattern Singleton
> >
> >
> > > Obrigado Clebert
> > >
> > > J� estava chegando a esta mesma conclus�o. Irei utilizar este design
> > > pattern apenas para o escopo de aplica��o. E irei armazenar este objeto
> > > usu�rio no escopo da sess�o.
> > >
> > > O chato � perder a transpar�ncia, pois ser� necess�rio pass�-lo como
> > > par�metro aos meus componentes ao inv�s deles automaticamente acess�-los
> > com
> > > getInstance(). Pode parecer besteira, mas n�o serei eu a fazer isso (e
> nem
> > > minha empresa) e sim nossos clientes. E quanto mais transparente e
> > simples,
> > > mesmo que por um detalhe, for o trabalho do cliente, melhor.
> > >
> > > um abra�o
> > >
> > > Jorge
> > >
> > >
> > > -----Original Message-----
> > > From: Clebert Rezende Suconic [mailto:[EMAIL PROTECTED]]
> > > Sent: ter�a-feira, 24 de outubro de 2000 20:14
> > > To: Jorge Martins; [EMAIL PROTECTED]
> > > Subject: Re: [java-list] Design Pattern Singleton
> > >
> > >
> > > Na minha opini�o voc� n�o deveria utilizar um Singleton. Voc� deveria
> > > utilizar um singleton quando voc� necessitasse de uma inst�ncia para
> todos
> > > os usu�rios do seu site. Uma classe singleton poderia conter dados
> b�sicos
> > > para todos como UFs, Sexo. Whatever, uma s�rie de coisas.
> > >
> > > Acredito que o mais indicado seria uma inst�ncia de objeto armazenado
> > > diretamente na se��o.
> > >
> > >
> > > Se��es armazenam Objects. Voc� poder� fazer type-cast quando necessitar.
> > > Basta recuperar o objeto da se��o
> > >
> > >
> > >
> > > Clebert
> > >
> > >
> > > ----- Original Message -----
> > > From: Jorge Martins <[EMAIL PROTECTED]>
> > > To: 'Clebert Rezende Suconic' <[EMAIL PROTECTED]>
> > > Sent: Tuesday, October 24, 2000 8:03 PM
> > > Subject: RE: [java-list] Design Pattern Singleton
> > >
> > >
> > > > OK. Isso eu consegui. Mas o escopo desta classe est� sendo de
> aplica��o
> > e
> > > eu
> > > > gostaria que fosse de se��o. Minha id�ia � manter toda a informa��o
> que
> > > > preciso do usu�rio do meu site em uma classe Singleton. Assim, cada
> > sess�o
> > > > manteria uma inst�ncia desta classe.
> > > >
> > > > Estou falhando em algum conceito ou � algum detalhe de implementa��o?
> O
> > > > conceito de sess�o, uma para cada usu�rio do meu site naquele momento,
> > > est�
> > > > correto? Como � feito o controle destas sess�es? � por IP?
> > > >
> > > > um abra�o
> > > >
> > > > Jorge
> > > >
> > > > ps: obrigado pela dica do synchronized. Eu tinha me esquecido deste
> > > > importante detalhe at� agora.
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Clebert Rezende Suconic [mailto:[EMAIL PROTECTED]]
> > > > Sent: ter�a-feira, 24 de outubro de 2000 19:59
> > > > To: [EMAIL PROTECTED]
> > > > Cc: [EMAIL PROTECTED]
> > > > Subject: Re: [java-list] Design Pattern Singleton
> > > >
> > > >
> > > > Teoricamente voc� n�o teria nenhum problema em criar a singleton.
> > > >
> > > >
> > > > public class MinhaClasseSingleton
> > > > {
> > > > private MinhaClasseSingleton()
> > > > {
> > > > }
> > > >
> > > >
> > > > private static MinhaClasseSingleton instanceSingleton;
> > > >
> > > > public synchronized static MinhaClasseSingleton getInstance()
> > > > {
> > > > if (instanceSingleton==null)
> > > > {
> > > > instanceSingleton= new MinhaClasseSingleton();
> > > > }
> > > >
> > > > return instanceSingleton;
> > > > }
> > > > }
> > > >
> > > > Basta voc� colocar a classe no classPath.
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Jorge Martins <[EMAIL PROTECTED]>
> > > > To: <[EMAIL PROTECTED]>
> > > > Sent: Tuesday, October 24, 2000 6:24 PM
> > > > Subject: [java-list] Design Pattern Singleton
> > > >
> > > >
> > > > > 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().
> > > > >
> > > > >
> > > > > p�gina 1 - usa a classe Singleton, configurando seu nome.
> > > > >
> > > > > > Singleton.getInstance().setName("Meu Nome");
> > > > >
> > > > >
> > > > > p�gina 2 - usa a classe Singleton, retornando o nome.
> > > > >
> > > > > > String name = Singleton.getInstance().getName();
> > > > >
> > > > > A String name deve ter valor "Meu Nome" se usada na mesma sess�o da
> > > p�gina
> > > > > 1.
> > > > >
> > > > >
> > > > > Fui suficientemente claro? Qualquer dica ser� bem vinda.
> > > > >
> > > > > um abra�o
> > > > >
> > > > > Jorge Roberto Diniz Martins
> > > > > [EMAIL PROTECTED]
> > > > > www.unear.net
> > > > > Tel.: +55 (21) 389-2924
>
> ------------------------------ 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]
> -------------------------------------------------------------------------
--
Eduardo Issao Ito <[EMAIL PROTECTED]>
Integration Technologies Ltda. <http://www.integrationtech.com.br>
Rua Marina Saddi Haidar, 176
04650-050 / Sao Paulo / SP / Brasil
Phone: +55 11 5522-4848 x311
Fax: +55 11 5524-1125
------------------------------ 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]
-------------------------------------------------------------------------