[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: RES: Standard Object Reflection (was Re: OOP in daydream...)
- From: PA <petite.abeille@...>
- Date: Wed, 19 Jan 2005 18:02:27 +0100
On Jan 19, 2005, at 18:37, André de Leiradella wrote:
. Multiple constructors can be defined
Why have "constructors" in the first place? What about a class methods
instead? E.g. anInstance = MyObject:class:new() or such.
Having super_of returning an iterator gives the programmer the choice
of
having multiple inheritance or not, I do have in my class system to
mimic Java's interfaces.
What about forgetting about multiple inheritance all together and
instead just allow for "behaviors" to be moved around (something along
the lines of AOP)? So you could say something like:
MyObject:class:addImplementation( anotherClass )?
You could as well support the equivalent of Objective-C categories by
providing a function to adds methods to any classes as well: e.g.
MyObject:class:addMethod( aMethod ).
. Methods must be called with ':'
Fine.
. Properties must be accessed with '.'
What about forgetting about properties altogether? After all, ivars are
implementation details. There is no needs to expose them one way or
another.
Is there another way of doing it? Seriously, maybe all objects should
be
opaque, and getter/setter methods provided.
I like that better.
But this will increase typing.
Then everything would be a method:
- Smalltalk: everything is an object.
- Objective-Lua: everything is a method.
. The syntax to call constructors
What about no constructor in the first place?
. The syntax to call inherited methods
What about something like: anInstance:super:doIt()?
. The repeated typing of 'self'
'self' is good. It should be a method as well. After all, OOP is about
passing message around. There should always be an explicit
target/action pair.
Cheers
--
PA
http://alt.textdrive.com/