Relationships between objects are almost as important to designs as objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This collection of patterns describe how objects can be used to model relationships within programs. By using these patterns, programs and designs can be smaller, more flexible, and easier to understand and maintain.
TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES AND SYSTEMS