Основные паттерны проектирования делятся на три группы:
- Порождающие. Помогают создавать объекты без добавления в программу лишних зависимостей. К ним относятся, например, «Фабричный метод», «Абстрактная фабрика», «Строитель», «Прототип», «Одиночка».
- Структурные. Определяют способы организации классов и объектов в крупные системы. К ним относятся «Адаптер», «Мост», «Компоновщик», «Декоратор», «Фасад», «Приспособленец», «Заместитель».
- Поведенческие. Отвечают за коммуникацию между компонентами программы. Они определяют способы обмена информацией и устанавливают принципы распределения обязанностей между объектами. К основным поведенческим паттернам относятся «Команда», «Итератор», «Посредник», «Хранитель», «Наблюдатель», «Цепочка обязанностей», «Состояние», «Стратегия», «Шаблонный метод», «Посетитель».
Паттерны — это не готовый код для вставки, а общая концепция решения задачи. Конкретная реализация всегда зависит от технологий и требований проекта.