Design Patterns: Elements of Reusable Object-Oriented Software

Capturing a wealth of experience about the design of object oriented software, four top notch designers present a catalog of simple and succinct solutions to commonly occurring design problems Previously undocumented, these 23 patterns allow designers to create flexible, elegant, and ultimatel