Rob Kinyon wrote:
> > 1. choose one of a set of available methods to call its own.
> > 2. create a version of its own.
> > 3. pass the buck.
>
> #1 and #2 are identical. Stevan and I have always viewed #1 as a
> special case of #2. If you want to choose a method to call, then
> create a method of your own and have it wrap the one you want to call.
>
> The benefit here is that you can do more than just pick a method.
> Let's say that you have a conflict and the correct behavior is to do
> them all, but in a certain way. Or, maybe the correct behavior is to
> provide a limited API over one version.
>
> Maybe, there'll be some sugar to allow #1 to be its own syntax, but it
> should be viewed as a #2.

You're right.  But this obscures the point that I was trying to make:
we need to decide what set of methods are available when
disambiguating.  Is the DOESA list public or private?  Should the role
be able to look up any public method that any of its ancestors have,
or should it be restricted to just the methods that its parent roles
have?  Given the flattened nature of composition, I feel that the
latter is more appropriate.

--
Jonathan "Dataweaver" Lang

Reply via email to