Паттерны проектирования классифицируются по двум основным признакам: по назначению и по области применения.
По назначению:
- Порождающие (Creational patterns): Описывают способы создания объектов, скрывая логику их создания и оптимизируя этот процесс.
- Структурные (Structural patterns): Описывают способы объединения классов и объектов в более крупные структуры, упрощая проектирование сложных систем.
- Поведенческие (Behavioral patterns): Описывают способы взаимодействия и распределения ответственности между объектами, улучшая гибкость и расширяемость поведения системы.
По области применения:
- Паттерны классов (Class patterns): Связаны с взаимоотношениями между классами, определяются на этапе компиляции и используют наследование.
- Паттерны объектов (Object patterns): Связаны с взаимоотношениями между объектами, определяются на этапе выполнения и используют композицию и делегирование.
Примеры паттернов по категориям из "банды четырех" (GoF):
| Назначение | Паттерны |
|---|
| Порождающие | Абстрактная фабрика, Строитель, Фабричный метод, Прототип, Одиночка |
| Структурные | Адаптер (объектов), Мост, Компоновщик, Декоратор, Фасад, Приспособленец, Заместитель |
| Поведенческие | Цепочка обязанностей, Команда, Итератор, Посредник, Снимок, Наблюдатель, Стратегия, Шаблонный метод, Посетитель |