On Sat, Dec 13, 2003 at 12:22:00PM -0500, Austin Hastings wrote: : > We might be able to make it work, though as you say, there are other : > ways to get there, and the chances are that at least one of them will : > be a better way. Certainly when the Dog object's class is composed, it : > will have to do something about the conflicting .seeVisitor methods : > in the two roles. : : Hmm. What does that do for run-time behavior? : : If you have to worry about (essentially) every possible role's namespace : conflicting with every other, the whole thing risks getting less useful : quickly.
But with the standard approach it merely seems like the whole thing is still useful when in fact your semantics are already clobbered but you just don't know it yet. Better to find out sooner than later. : > It might well be better to encode that choice as : > part of the dog's state rather than in the references to it. : : Treat 'em as a stack. Last one applied dominates. But make sure there's a : way to unstack the roles when finished. Accidental stacks considered harmful. We're trying to get rid of the accidental ones while preserving the ability to have intentional ones. Larry