Martin Aspeli wrote:

Chris Withers wrote:
I find myself often having to define pure marker interfaces for each class that I define, purely so I can register adapters for objects of that class.

Why does your class not have a (non-marker) interface in the first place?
The use of interfaces as documentation and as formalisms for expressing a
class' functionality (in adapters, utilities etc) is one of the benefits
that Zope 3 introduces. I can see how they may not always add that much
value immediately, but they are a good way of ensuring things are reasonably
well-defined, well-documented and easily locatable. I'd rather start from
interface design and implement as necessary, than think of interfaces as
necessary evils of the CA, personally.

Oh, I disagree. It's much nicer to be able to be able to start with adapting classes, and introduce interfaces later, where necessary. Often they're not. In fact it's already possible to adapt classes and register views for classes. In ZCML I believe there's some limitations with one directive or other (a bug), at least there was, but the component architecture has allowed this for a long time. We've been very happily using this in grok.

C++ also encourages/enforced the writing of a .h file describing the interface for all classes. I then learned Python and was much happier. Zope 3 should allow for the Pythonic pattern of development.



Zope3-dev mailing list

Reply via email to