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