Design Patterns
... you’ll find recurring patterns of classes and
communicating objects in many object-oriented
systems. These patterns solve specific design
problems and make object-oriented design more
flexible, elegant, and ultimately reusable. They
help designers reuse successful designs by
basing new designs on prior experience. A
designer who is familiar with such patterns can
apply them immediately to design problems
without having to rediscover them.
Gamma and his colleagues [GAM95]