2006/3/14, James Edward Gray II <james / grayproductions.net>:
> On Mar 14, 2006, at 6:11 AM, Peter Fitzgibbons wrote:
>
> > Hello all,
> >
> > Can someone explain to me the reason for SimpleDelegator over using
> > "just a
> > variable".
>
> I asked the same question when I wrote the documentation for that
> library.  We tried and tried, but only ever came up with one semi-
> reasonable use for it.
>
> It you wrap something with SimpleDelegator and hand it off to some
> method, you could later change the underlying delegation object, even
> though you wouldn't have access to the variable the object is stored
> in.  This still seems like a stretch to me since some event will need
> to trigger the change and you could probably just build the API to
> hand-off the new object at that point.  Still, it's the only use I've
> ever come up with.
>
> In short, I suspect it's a not often used feature.   ;)

I'm not so sure about that.  I've certainly used delegator several
times in my Ruby time. Changing the real target (along the lines of
strategy / state patterns) is certainly one way to make use of Ruby's
delegation classes. A probably more typical approach is when you want
to add functionality to something without changing it. You just
delegate and implement those methods with changed behavior. This can
be necessary if you do not control creation of the instance whose
behavior you want to change and do not want or are not allowed to
tamper with implemented methods.

Kind regards

robert


--
Have a look: http://www.flickr.com/photos/fussel-foto/