Pablo Jorge Madril wrote:
> 
> Por tanto, so mesmo a solucao da static.
> O que nao entendi e porque consideras ela tao ruim.

        � ruim porque uma solu��o usando static n�o � thread-safe. Imagine,
por exemplo, se dois threads tentarem instanciar essa classe ao mesmo tempo.
As coisas n�o v�o funcionar muito bem, concorda?


> Deixar pro cliente fazer
> o trabalho sujo acho que nao vai melhorar muito a situacao, especialmente
> porque ele pode cair no mesmo problema.
> Quer dizer, alguem vai ter que declarar uma static (ou equivalente) em algum
> lugar.

        N�o vai, n�o. Observe a �ltima solu��o que eu acabei escolhendo:

class MessageOutputStream extends ObjectOutputStream {
  private ByteArrayOutputStream _bos;
  MessageOutputStream(ByteArrayOutputStream bos)
      throws java.io.IOException {
    super(bos);
    _bos = bos;
  }
}


        Neste caso, o "cliente" tem que instanci�-la fazendo algo do
tipo:

MessageOutputStream msg = new MessageOutputStream(new ByteArrayOutputStream());

        Dessa forma, n�o existe nenhuma vari�vel static envolvida na
hist�ria. S� que isso n�o � muito legal, ficaria melhor se a instancia��o
do ByteArrayOutputStream ficasse automatizada dentro da classe
MessageOutputStream, foi justamente por isso que eu mandei o email
pedindo sugest�es... Mas pelo menos � uma solu��o segura e eficiente.

        Um abra�o,

Einar Saukas
Technical Consultant
Summa Technologies, Inc.
http://www.summa-tech.com


    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a