A Facet is an object
which provides an alternative representation of another object.
Examples of a
Facet could
be:
An object that represents an XML file in a filesystem as a parse tree of XML node objects.
A "persistence" facet of an object, to which the responsibilities for making the object persistent in some storage medium are delegated.
An object which represents an Employee object, from the domain model of some application, as a Drawable with the capability to be drawn on a Canvas.
The FavaBeans Facet
objects owe their lineage in part to the following previous work:
The GOF Decorator design pattern (Gamma95).
The Facet interface in ObjectSpace Voyager (ObjectSpaceVoyager).
The definition of "interfaces" by delegation, as used in Microsoft's [D]COM (MicrosoftCOM).