[Zope3-dev] Re: Interface declaration API
Yuppie
schubbe@web.de
Wed, 12 Mar 2003 07:44:40 +0100
Phillip J. Eby wrote:
> The whole purpose of inheritance, IMO, is to make it possible to
> understand and/or define a class *in terms of how it is different* from
> its base(s). Requiring a restatement of its bases' interfaces in order
> to denote a change, is just as redundant as requiring one to restate the
> source code of the methods inherited from those bases!
+1
I hope Zope3 will never become as complex as Zope 2, but have in mind
the Interface Declaration API should be useable with real live classes
like the attached example from the CMF.
Restating its bases' interfaces would be a real pain.
Just my 2 cents,
Yuppie
Inheritance Tree of CMFCore.PortalObject.PortalObjectBase
=========================================================
DynamicType --+
|
Base --+ |
| |
CMFCatalogAware --+
|
Base --+ |
| |
CopyContainer --+ |
| |
Base --+ | |
| | |
Navigation --+ |
| |
Base --+ | |
| | |
Tabs --+ |
| |
Acquirer --+ |
| |
Persistent --+ |
| |
Base --+ | |
| | |
EtagSupport --+ | | |
| | | |
LockableItem --+ | |
| | |
Resource --+ | |
| | |
Collection --+ |
| |
Traversable --+ |
| |
ObjectManager --+ |
| |
Base --+ | |
| | |
Node --+ | | |
| | | |
Element --+ | | |
| | | |
ElementWithAttributes --+ | |
| | |
PropertyManager --+ |
| |
Base --+ | |
| | |
RoleManager --+ | |
| | |
RoleManager --+ |
| |
Base --+ | |
| | |
EtagSupport --+ | | |
| | | |
LockableItem --+ | |
| | |
Resource --+ | |
| | |
Collection --+ |
| |
Base --+ | |
| | |
Base --+ | | |
| | | |
EtagSupport --+ | | | |
| | | | |
LockableItem --+ | | |
| | | |
Resource --+ | |
| | |
Base --+ | | |
| | | |
CopySource --+ | |
| | |
Base --+ | | |
| | | |
Tabs --+ | |
| | |
Traversable --+ | |
| | |
Node --+ | | |
| | | |
Element --+ | |
| | |
Base --+ | | |
| | | |
Owned --+ | |
| | |
Base --+ | | |
| | | |
UndoSupport --+ | |
| | |
Item --+ |
| |
Base --+ | |
| | |
FindSupport --+ |
| |
Folder --+
|
PortalFolder --+
|
Base --+ |
| |
CopyContainer --+ |
| |
Base --+ | |
| | |
Navigation --+ |
| |
Base --+ | |
| | |
Tabs --+ |
| |
Acquirer --+ |
| |
Persistent --+ |
| |
Base --+ | |
| | |
EtagSupport --+ | | |
| | | |
LockableItem --+ | |
| | |
Resource --+ | |
| | |
Collection --+ |
| |
Traversable --+ |
| |
ObjectManager --+ |
| |
SkinnableObjectManager --+
|
PortalObjectBase