1. The document describes 23 design patterns organized into three categories: creational patterns, structural patterns, and behavioral patterns.
2. The creational patterns provide mechanisms to create objects that implement given interfaces without specifying the exact class. The structural patterns focus on relationships and responsibilities between entities. The behavioral patterns are concerned with effective communication between entities.
3. Each pattern describes a recurring problem in object-oriented software design and presents a general reusable solution. The patterns promote loose coupling between classes and allow variation through inheritance.