Presents a catalog of simple solutions to commonly occurring design problems. These 23 patterns allow designers to create more reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are, and how they can help you design object-oriented software.