Существуют три основные классификации паттернов проектирования, основанные на их назначении:
- Порождающие (Creational): Связаны с созданием объектов. Они помогают сделать систему независимой от способа создания, композиции и представления объектов.
- Factory Method
- Abstract Factory
- Builder
- Singleton
- Prototype
- Структурные (Structural): Объясняют, как из классов и объектов образуются более крупные структуры.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Поведенческие (Behavioral): Определяют алгоритмы взаимодействия между объектами и распределение ответственности между ними.
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Также существует классификация по уровню применения:
- Паттерны класса (Class Patterns): Описывают статические связи между классами (наследование).
- Паттерны объекта (Object Patterns): Описывают динамические связи между объектами (композиция).
Например:
| Категория | Тип | Пример |
|---|
| Порождающие | Объектный | Factory Method |
| Структурные | Классовый | Adapter |
| Поведенческие | Объектный | Strategy |