Design patterns are known solutions to complex requirements — examples of such requirements might be decoupling two objects. There are three catalogs of design patterns:
- Creational Patterns — provide various object creation mechanisms, which increase flexibility and reuse of existing code.
- Structural Patterns — explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.
- Behavioral Patterns — concerned with algorithms and the assignment of responsibilities between objects.
Creational Patterns
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Singleton
Structural Patterns
- Adapter Pattern
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
Behavioral Patterns
- Chain of Responsibility
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor