From: Robert Klemme Date: 2006-03-15T05:16:58+09:00 Subject: Re: SimpleDelegator vs. simple variable ? 2006/3/14, James Edward Gray II : > 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/