Einar Saukas wrote:

> "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.

N�o concordo muito com essa opini�o pois alguns dos Design Patterns do Gamma s�o 
baseados em implementa��es deste tipo. Mas  o importante foi como
voce mesmo disse resolver o principal
objetivo!

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

--
Frederico Charles S. Faria
Especialista em Sistemas
INATEL - PRODEP
Fone/Phone: +55 35 471-9280


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