[Newbies] How to squeeze Multiple Inheritance into Squeak ?
Ron Teitelbaum
Ron at USMedRec.com
Mon Nov 13 22:36:25 UTC 2006
There are some lightweight ways of handling this using roles.
Person
instanceVariables: roles
aPerson roles add: Human new; add: Ninja new.
There are a number of roles implementations. One based on doesNotUnderstand
which runs through the roles collection and passes the called but not
understandable message to each instance. Some implementations will return a
collection of responses if multiple roles answer the same message, and this
can get kinda tricky if you don't know how to watch for it. You can also
define a specific interface to your methods by specifically implementing
your methods on Person to look for a role before forwarding the method and
handling the call if it does not.
For Example:
Person >> killSilently
aPerson hasNinjaRole ifTrue: [^self ninjaRole killSilently].
aPerson hasHumanRole ifTrue: [^self humanRole killSilently].
aPerson handleKillingRequestWithMoreSleepAndExercise.
Ninja >> killSilently
"walk on rice paper leaving no trace then you will be ready"
self doSilentKilling
Human >> killSilently
"humanity wins"
self tryToKill.
self goToPoliceStation.
self confess.
I'm not saying I like roles. I just thought I'd mention more options.
Ron Teitelbaum
President / Principal Software Engineer
US Medical Record Specialists
Ron at USMedRec.com
_____
From: beginners-bounces at lists.squeakfoundation.org
[mailto:beginners-bounces at lists.squeakfoundation.org] On Behalf Of Michael
Gorsuch
Sent: Monday, November 13, 2006 3:56 PM
To: A friendly place to get answers to even the most basic questions
aboutSqueak.
Subject: Re: [Newbies] How to squeeze Multiple Inheritance into Squeak ?
Here's an idea:
I have a Person class, but I need him to inherit traits that the Human class
has and the Ninja class has.
Is that sufficient?
On 11/13/06, Michael Haupt <mhaupt at gmail.com> wrote:
Hi Warakom,
On 11/13/06, Warakorn Paphrawat <warakorn_paphrawat at yahoo.com> wrote:
> Sadly enough the possibility of Multiple Inheritance in Squeak would
greatly
> benefit me in my current Squeak project ?
what exactly is the characteristic in your project that imposes this
requirement on it? Why do you need multiple inheritance? What would
you use it for?
I'd recomment looking at traits first, but without knowing what
exactly you are trying to achieve, I cannot say much more. :-)
Best,
Michael
_______________________________________________
Beginners mailing list
Beginners at lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20061113/c58f6e1c/attachment-0001.htm
More information about the Beginners
mailing list