Creational Design Patterns
Mechanisms for creating objects in a manner suitable to the situation:
Structural Design Patterns
How classes and objects are composed to form larger structures:
- Adapter Pattern - Allow incompatible interfaces to collaborate.
- Bridge Pattern - Decouple an abstraction from its implementation.
- Composite Pattern - Compose objects into tree structures to represent part-whole hierarchies.
- Decorator Pattern - Attach new responsibilities to objects dynamically.
- Facade Pattern - Provide a simplified interface to a complex library or subsystem.
- Flyweight Pattern - Fit more objects into available RAM by sharing common state.
- Proxy Pattern - Provide a placeholder or surrogate to control access to another object.
Behavioral Design Patterns
Algorithms and the assignment of responsibilities between objects: