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