Front page | perl.perl6.language |
Postings from January 2004
Re: Roles and Mix-ins?
Thread Previous
|
Thread Next
From:
Luke Palmer
Date:
January 6, 2004 01:51
Subject:
Re: Roles and Mix-ins?
Message ID:
20040106095127.GA17281@babylonia.flatirons.org
David Storrs writes:
>
> On Sat, Dec 13, 2003 at 11:12:31AM -0800, Larry Wall wrote:
> > On Sat, Dec 13, 2003 at 04:57:17AM -0700, Luke Palmer wrote:
>
> > : For one, one role's methods don't silently override another's. Instead,
> > : you get, er, role conflict and you have to disambiguate yourself.
>
> How do you disambiguate?
Let's see...
role Dog {
method bark() { print "Ruff!" }
}
role Tree {
method bark() { print "Rough!" }
}
class Trog
does Dog does Tree {
method bark() { .Dog::bark() }
}
}
Perhaps something like that. In any case, you do it by putting the
offending method directly in the aggregating class.
> After reading this several times, I _think_ I understand. Let me
> check: imagine that the original class is a text buffer going from
> 0-99. We have two roles (A and B), each of length 100. Objects of
> various types can then see different segments of the buffer (i.e.,
> different methods/properties/whatever), as follows:
>
> Type Can see
> ---- -------
> Class 1-100
> A 101-199
> B 200-299
> Class+A 1-100,101-199
> Class+B 1-100,200-299
> Class+A+B 1-100,101-199,200-299
>
> Is that right?
Umm... I'm not sure that's what I'd use roles for. And I'm not sure how
roles with associated data are supposed to work yet. But I think you
have the general idea.
Luke
Thread Previous
|
Thread Next