zope.component, together with zope.interface, provides facilities
for defining, registering and looking up components.
There are two basic kinds of components: adapters and utilities.
Utilities are just components that provide an interface and that
are looked up by an interface and a name.
Adapters are components that are computed from other components
to adapt them to some interface. Because they are computed from
other objects, they are provided as factories, usually classes.