Существует несколько классификаций паттернов проектирования:
-
По назначению:
- Порождающие: Управляют процессом создания объектов. Примеры: Фабричный метод, Абстрактная фабрика, Одиночка, Прототип, Строитель.
- Структурные: Определяют способы построения структур классов и объектов. Примеры: Адаптер, Мост, Компоновщик, Декоратор, Фасад, Приспособленец, Заместитель.
- Поведенческие: Описывают взаимодействие между классами и объектами. Примеры: Цепочка обязанностей, Команда, Итератор, Медиатор, Хранитель, Наблюдатель, Состояние, Стратегия, Шаблонный метод, Посетитель.
-
По уровню абстракции (по ГоФ - "Банда Четырех"): Эта классификация, предложенная в книге "Приемы объектно-ориентированного проектирования. Паттерны проектирования", является наиболее распространенной и включает вышеперечисленные категории (порождающие, структурные, поведенческие).
-
По применению:
- Паттерны проектирования классов: Описывают взаимосвязи между классами в компиляции.
- Паттерны проектирования объектов: Описывают взаимосвязи между объектами во время выполнения.
-
По специфике предметной области:
- Паттерны пользовательского интерфейса: Определяют способы взаимодействия с пользователем (например, Model-View-Controller, Model-View-ViewModel).
- Паттерны взаимодействия: Описывают способы коммуникации между компонентами системы.
- Другие предметно-специфичные паттерны.