Zope3 Component Architecture
A component is a reusable object with introspectable interfaces. Also components are cohesive and decoupled objects. A component provide an interface implemented in a class. It doesn't matter how component is implemented, the important part is that it comply with its interface contracts. An interface is an object that describes how you work with a particular component. Using Zope component architecture we can spread the complexity of systems over multiple cooperating components. Zope component architecture help us to create two basic kinds of components, adapters and utilities.
Learn more at Zope3 Wiki