Provides "abilities". Those classes are best used via inheritance. They give extra functionality to a class.
The currently available abilities are:
COMPARABLE
for objects that can be compared between
themselves;HASHABLE
for objects that want to interact with the
Garbage Collector when they are about to be collected;HASHABLE
for objects that provide a hash-code
(e.g. useful for hashed dictionaries and sets);OBSERVABLE
for objects that can notify observers when
their state changes (that's the Observer Design Pattern);STORABLE
for objects that want to be put on an external
medium, to be retrieved again later;TRAVERSABLE
for objects that provide traversal
facilities;VISITABLE
for objects that can be visited using the
Visitor Design Pattern.