No registered users in community xowiki
in last 10 minutes
in last 10 minutes
[Xotcl] Annoucing new init+destroy scheme
From: Uwe Zdun <uwe.zdun_at_uni-essen.de>
Date: Wed, 7 Feb 2001 17:25:03 +0100
Dear XOTcl Community,
Annoucing new init+destroy scheme: Due to constant questions and problems
regarding object destroy + creation + recreate, we have decided to provide
a new destroy scheme in XOTcl 0.84. It will have only slight observable
differences to the current destroy scheme, but is more flexible and
allows for recreation.
I'll explain how it is currently implemented:
"create" and "alloc" are both now Class instprocs handling creation for their
instances. I.e.
[self] alloc
is wrong ... correct is now:
<className> alloc [self]
There is a new method "instdestroy" on Class that handles physical destruction
of an object. The method "destroy" on Object has now the behavior:
Object instproc destroy args {
[[self] info class] instdestroy [self]
}
Everything is written in C ... I'll use XOTcl code just for explanation...
"create" now distinguishes between:
1) creating a new object:
calls alloc + <doInitializations>
2) recreating an existing object
calls:
[self] class <givenClass>
[self] cleanup ;# resets <self> into a state
as after original <init>
<givenClass> recreate [self]
"recreate" is a new method that can be customized. Its default behaviour
is:
<doInitializations>
<doInitializations> is called in C and is the same for recreate and (1):
- search for parameter default values
- call "-" initialization methods
- call "init"
each of those will have a method call that can be changed, intercepted, etc.
Of course, you can also overload or intercept cleanup, recreate, instdestroy,
etc.
Comments?
Greetings, Uwe
Date: Wed, 7 Feb 2001 17:25:03 +0100
Dear XOTcl Community,
Annoucing new init+destroy scheme: Due to constant questions and problems
regarding object destroy + creation + recreate, we have decided to provide
a new destroy scheme in XOTcl 0.84. It will have only slight observable
differences to the current destroy scheme, but is more flexible and
allows for recreation.
I'll explain how it is currently implemented:
"create" and "alloc" are both now Class instprocs handling creation for their
instances. I.e.
[self] alloc
is wrong ... correct is now:
<className> alloc [self]
There is a new method "instdestroy" on Class that handles physical destruction
of an object. The method "destroy" on Object has now the behavior:
Object instproc destroy args {
[[self] info class] instdestroy [self]
}
Everything is written in C ... I'll use XOTcl code just for explanation...
"create" now distinguishes between:
1) creating a new object:
calls alloc + <doInitializations>
2) recreating an existing object
calls:
[self] class <givenClass>
[self] cleanup ;# resets <self> into a state
as after original <init>
<givenClass> recreate [self]
"recreate" is a new method that can be customized. Its default behaviour
is:
<doInitializations>
<doInitializations> is called in C and is the same for recreate and (1):
- search for parameter default values
- call "-" initialization methods
- call "init"
each of those will have a method call that can be changed, intercepted, etc.
Of course, you can also overload or intercept cleanup, recreate, instdestroy,
etc.
Comments?
Greetings, Uwe
-- Uwe Zdun Specification of Software Systems, University of Essen Phone: +49 201 81 00 332, Fax: +49 201 81 00 398 zdun_at_xotcl.org, uwe.zdun_at_uni-essen.de