Hello,
>> If it is a class method, it must be inherited by any derived
class.
This is what I had done.
However, I had the time finally to conduce the following tests.
- create a Product P1
(Note: I used the word "package" instead of Product in my previous postings)
- create a Class A in P1
- create a method z in the Class A
- create a Product P2
- create a Class AA that inherits A in product P2.
- create an object 'o' instance of Class AA.
- make the test of calling the method z on 'o'.
Results: everything works fine !!
So everything seems to work correctly with the new version.
However, when I try to do the same (create a method z and test) for Packages
that I had created in the previous version of Zope, it just does not work !!
(I have imported in the new version the class I had created in the previous
version).
I believe that this had to do with the trick I used to split and existing Product
in several Products: Since I could not move a class directly from a package to another,
I created 2 copies of the same packages. I deleted from the first package the class I wanted
to move. From the second package, I deleted the classes I didn't want to move.
The result was 2 packages with each the correct set of classes.
The problem is that this seems to have generated some kind of inconsistancy,
in particular related to the namespace: the second package do not have access to
the namespace of the first package.
I know this was a relatively ugly way to proceed, but I found at that having
a zillion of classes in a same package was even more ugly, and I needed to reduce
this complexity by introducing more modularity.
Of course, at the beginning I couldn't predict which Products and which classes
would exist and I decided to start with one package and split it later.
If you had nor noticed I used some kind of incremental/prototypical/evolutionary/blablabla
methodology.
Unfortunatly, not being able -- to move classes from one product to another -- makes
the use of this methodology problematic :-(.
Another similar problem is that you can not modify a posteriori the inheritance tree.
(for instance when you decompose a class into 2 subclasses that inherit from one another).
To conclude, I find Zope to be a very interesting systems (because it is dynamic,
object-oriented, integrate seamlessly an OO database, etc.).
However, it would be an even better system if it provided more flexibility to
reengineer an architecture. (very important when you use a prototypical approach).
Or perhaps, there is something I have not understood ?
Thierry Nabeth
Research Fellow
INSEAD CALT (the Centre for Advanced Learning Technologies)
http://www.insead.fr/CALT/
-----Original Message-----
From: Dieter Maurer [mailto:[EMAIL PROTECTED]]
Sent: Monday, August 21, 2000 10:47 PM
To: [EMAIL PROTECTED]
Subject: Re: RE[2]: [Zope] Product inheritance question (similar
question)
NABETH Thierry writes:
> What I will have to do:
> - create a Package (Zope product).
> - create a class in this package, and a method (my_method)
This should be a method of the class,
not a method in the packages.
If it is a class method, it must be inherited by any derived
class.
Dieter
-----Original Message-----
From: NABETH Thierry
Sent: Friday, August 18, 2000 9:29 AM
To: '[EMAIL PROTECTED]'
Subject: RE: [Zope] Product inhetitance question (similar question)
And what happen if the Class A is in a package PA.
Clabb B is in a package PB.
How do you access the namespace of PA from PB ?
When I have tried, the inherited methods from A where not visible
from B, and I and to recreate a copie of the method.
(which is ugly !!!).
Any suggestion ?
Thierry Nabeth
Research Fellow
INSEAD CALT (the Centre for Advanced Learning Technologies)
http://www.insead.fr/CALT/