delegation versus design patterns
lourenci at lsi.usp.br
Fri Nov 24 19:10:43 UTC 2000
Take a look at the Darwin project. It is an extension of Java supporting
form of delegation, so you get both classes and delegation.
In Gúnther Kniesel's Ph.. thesis, page 165 he states:
These are no problems of the deisgn patterns themselves, but of the
underlying object model, which provides no suitable means to
implement the patterns. He says to look at the book of the GOF
page 309 where he states dynamic inheritance would be a desirable
implementation for the state pattern. This was found in an earlier
version of Self!
The granularity of language support for design patterns is subject to
Some authors insist that every pattern needs its specific language
others point out that this would be overwhelming and argue that the
needs of many different patterns should be identificied and
supported by generic mechanisms.
Günther thinks that delegation is such a generic mechanism.In page 28
Different sharing mechanisms are required not just by different types
of software development processes but, more importantly, by different
types of applications.
Each type of sharing that is intrinsic to an application should easily
All types of sharing must be supported equally well by widespread
production programming languages and conceptual modelling
The functionality that motivated the synthesis: modelling of behaviour
A model of object-oriented languages that support both behaviour
evolution and unanticipated extension would be a highly desirable
tool for every analyst, designer and programmer.
Prototype and delegation-based languages can directly express
changes of structure and behaviour but do not provide safety
guarantees like static typing and
guaranteed uniform structure of groups of objects, which are
widely considered indispensable for production programming..
Well, when I started in 1988 to be concerned with programming
languages of course I was fascinated with this story of
I was afraid of Lisp because it is atyped. Besides the fact it
doesn't feet my needs.
Then in 1996 I read a paper written by Ole Agesen and published
at ECOOP'95 where I realized that only in appearance Self is
not typed for the user. The types are all included in the compiler.
Sorry I do not have the paper with me here.
So can you explain to me how this story works?
Then I fell in love with Self and abandoned programming in Beta.
Moreover Günther states Class-based languages essentially
model object specific properties and their dynamic change by
trying to mimic delegation.(page 39)
The class-based variants of the two basic scenarios for
modelling anticipated and unanticipated change by simulating
delegation are illustrated in Figure 3.1 and 3.2.
These scenarios can be regarded as meta-patterns that
distill the technical essence common to varios design
The scenario illustrated in Fig.1 is characteristic for the
flyweight, state and strategy pattern. The scenario
in fig. 2 is characteristic for the bridge, decorator, chain
of responsibility and proxy pattern.
The first deals with anticipated property addition, deletion
and update and the other deals with unanticipated property
addition, deletion and update.
Then in section 3.6 he proceeds examining how
the operational details of delegation are simulated.
Honestly this kind of analysis I cannot even read.
What's wrong here? I do not know because I am able
to follow detailed papers like those written by
Luca Cardelli or the above written by Ole Agesen.
In page 50 he concludes stating that the most promising
approach to unanticipated behaviour evolution is the
integration of delegation into statically typed class-based
Can someone explain to me in a way that enables
a right-sided thinker to understand this?
I abandoned Beta because the Beta group showed
in the book about the Mjolner environment the
disadvantages of the environment concerned
with a typed language. Then they build a bridge
for me to understand an exploratory programming
I do not know much about Java but I know enough
to be aware it is not superior to Self .
| Albertina Lourenci |
| PhD in Architecture and Urbanism |
| post-doctorate researcher |
| Laboratory of Integrated Systems University of Sao Paulo |
| Avenida Professor Luciano Gualberto, 158 Travessa 3 |
| CEP: 05508-900 |
| Sao Paulo Sao Paulo State Brazil |
| Voice: +55 011 818 5254 |
| Fax: +55 11 211 4574 |
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Self-interest