- General and reusable solutions to common problems in software design
- Not a completete (finished) solution
- A template or recipe for solving certain problems
Design Patterns: Elements of Reusable Object Oriented Software 1994 (ISBN 0-201-63361-2) Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson and Jogn Vlissides
- Fives our profession a shared language
- Helps avoid re-inventing constantly
- Provide a starting point for a solution
- Improves system and application design
- Creational Patterns
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Lazy Instantiation
- Utility Pattern
- Structural Patterns
- Behavioral Patterns
- Security Patterns
- Concurrency Patterns
- Sql Patterns
- User Interface Patterns
- Relational Patterns
- Social Patterns
- Distributed Patterns