"Frederico Charle S. Faria" wrote:
> 
> Einar Saukas wrote:
> > 
> >         Essa discuss�o est� bem legal, mas de qualquer forma o problema
> > original continua em aberto: como fazer para instanciar uma classe,
> > repass�-la para o construtor da classe base e depois ainda guard�-la
> > numa vari�vel de inst�ncia?
> >
> >         Ou, colocando o problema de outra forma, existe alguma maneira
> > de implementar algo assim:
> >
> > class MessageOutputStream extends ObjectOutputStream {
> >   private ByteArrayOutputStream _bos;
> >   MessageOutputStream() throws java.io.IOException {
> >     super(_bos = new ByteArrayOutputStream());  // ERRO!
> >   }
> > }
> >
> >         ... de forma que o cliente possa usar essa classe fazendo
> > apenas isto:
> >
> > MessageOutputStream var = new MessageOutputStream();
> >
> >         Algu�m tem mais sugest�es?
> 
> Talvez isto resolva seu problema:
> 
> class MessageOutputStream extends ObjectOutputStream {
>   private ByteArrayOutputStream _bos;
>   static MessageOutputStream constroi() throws java.io.IOException {
>        ByteArrayOutputStream tmp = new ByteArrayOutputStream();
>        MessageOutputStream   mos = new  MessageOutputStream(tmp);
>        return mos;
>    };
>   MessageOutputStream(ByteArrayOutputStream _bosvar) throws java.io.IOException  {
>      super(_bosvar);
>     _bos = _bosvar;
>   };
> }

        Opa, essa � uma boa solu��o!

        Ela s� n�o chega a ser perfeita porque a forma de instancia��o da
classe n�o fica muito natural. Quer dizer, ao inv�s da forma padr�o:

MessageOutputStream var = new MessageOutputStream();

        ... o cliente tem que fazer algo assim:

MessageOutputStream var = MessageOutputStream.constroi();

        Pode n�o ser muito "bonito", mas j� funciona melhor do que as
que eu tinha pensado. Pelo menos ela esconde a utiliza��o interna do
ByteArrayOutputStream, que era o objetivo principal.

        Legal, � essa solu��o mesmo que eu vou adotar, a n�o ser que
algu�m consiga bolar alguma m�gica para fazer a instancia��o da forma
convencional...

        Ent�o obrigado pela id�ia!

        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