The basic components of FavaBeans are shown in Figure 1.1.
We will describe these components in more detail in the ensuing chapters but, briefly:
A domain object (i.e., some part of the application, like an Employee or a TechSupportCallLog), is required to know nothing about FavaBeans.
A View is
the fundamental visible UI component in FavaBeans.
Each
View visually
represents at most one domain object; on the other hand, a domain
object may be represented by many
Views.
Various portions of the FavaBeans framework create
Facets and
Features; these act as
adapters, presenting the capabilities of the domain object in a
uniform way to other components in FavaBeans. Each domain object may
have many
Facets and
Features.
Programmers use FavaBeans via the following techniques, listed in ascending order of tight integration with the framework and need to know the details of the framework interfaces:
Adding information to the
TypeMetadataRegistry
accessible from class
FavaBeans.
Creating new
Facet and
Feature implementations,
or extending existing ones, which adapt domain objects to the
standard elements of the framework, including standard
Views (such as "icon
views" of collections and "property sheets"); and
--
The FavaBeans framework associates a domain object with the
correct Views,
Facets and
Features based on the
Types that match the domain
object.
Types can be extended to
implement various criteria for organizing domain objects, such
as:
A domain object may match more than one
Type. The only restriction we
impose is that the
Types of a
domain object may not change at run-time.