Object interaction. Was: Squackers, Tenth-Birthday-of-Squeak
edition - Fireworks!!
trygver at ifi.uio.no
Thu Oct 5 14:06:14 UTC 2006
The essence of object orientation is that objects interact to accomplish
some desired functionality.
The essential questions are:
(1) What are the objects?
(2) How are they interlinked?
(3) How do they interact? (What happens in the inter-object space?)
Powerful abstractions for (1) are the class and the *role*:
* The class abstraction defines what an object IS.
* The role abstraction defines what an object DOES in a community of
interacting objects. (Its responsibility in this context)
My *role model* is a possible abstraction for (2). It defines roles and the
links between them. A simplified version is called *collaboration* in UML.
(Misunderstood in UML 1.x. Much better in UML 2.x. But still missing
There are many candidates for (3). Algorithms, interactions, state
machines, activities/data flow.
I still dream of extending Squeak with languages and metaclasses for
objects/roles/collaborations/interactions. In my first attempt, I got lost
in the intricacies of low level library code. I hope 3.9 and Spoon will
make life easier (for me :-)).
At 23:12 03.10.2006, Bill Schwab wrote:
>I always thought how objects communicated to be interesting. I think of
>water or air as both a way to touch, communicate and connect with other
>objects, and at the same time, a carrier of objects to remote
>destinations. There is just something wonderful about the flow between
>real-life objects. Water can exist in many forms and it can carry
>objects to many places - it has a way of getting in the way of humans;
>and it's hard to control, no matter how hard we try... certainly more
>redundant than the Internet!
>Same with air, it can carry sound waves that could be music or noise -
>of which the quality is listener dependent :-) It can have disastrous
>effects too - like carrying deadly spores.
>Common internet protocols carry malware, and even the occasional
>Microsoft service pack =:0
>So, while I think encapsulated objects in software design is productive
>and fun, I don't think we spend enough time inventing new ways to
>communicate between objects. Or, at least I don't spend enough time
>thinking about it. Most likely, I'm naive about it.
>Far be it from me to call another Smalltalker naive. It might help to
>think of the way atoms and molecules interact, which (chemically at
>least) is via electron clouds, and a few other field effects. All of
>the other stuff is higher level, which one would model using objects and
>messages vs. extending the VM and details of message sending - at least
>With that said, note the following:
>which puts you in good company.
Trygve Reenskaug mailto: trygver at ifi.uio.no
Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev