Object: Identity vs. Environment
Brian T Rice
water at tunes.org
Mon Jun 9 09:04:05 UTC 2003
I'm glad that someone eventually mentioned something related to multiple
dispatch. Slate's is: seems to work rather well for this case. ;)
You can also override is: for ad hoc pretending on a pair of arguments,
and the original method is reallyIs: and is not overridden.
On Mon, 9 Jun 2003, Joel Shellman wrote:
> Ah, I think what you're referring to is double dispatch, isn't it?
>
> http://c2.com/cgi/wiki?DoubleDispatch
>
> Which so far as I understand it makes good sense.
>
> -joel
>
> ----- Original Message -----
> From: "Andres Valloud" <sqrmax at comcast.net>
> To: "The general-purpose Squeak developers list"
> <squeak-dev at lists.squeakfoundation.org>
> Sent: Monday, June 09, 2003 12:04 AM
> Subject: Re: Object: Identity vs. Environment
>
>
> > > But you might have a dozen methods with isFoo + ifTrue/ifFalse.
> > > Then you would need Object>>fooAction1, Object>>fooAction2, etc.
> >
> > The dozen actions will get written one way or the other, either inside
> > ifTrue/ifFalse blocks or in messages. As far as the amount of code is
> > concerned, fooActions are at least as compact - if not more since you
> > don't need ifTrue/ifFalse.
> >
> > The key issue here is that the ifTrue/ifFalse actions should be in
> > messages the receivers of isXYZ understand. Otherwise, the context in
> > which you write the ifTrue/ifFalse actions has to grow larger to provide
> > meaning to the actions. You end up as if you had used a traditional
> > programming language: the receivers of isXYZ are more value holders than
> > behaviorful distinctions as far as the context of usage is concerned.
> >
> > Disclaimer: these arguments apply only to the "isKindOf:" kind of isXYZ
> > messages.
> >
> > Andres.
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/
More information about the Squeak-dev
mailing list
|