На какие три основные группы делятся паттерны проектирования GoF

Ответ

Паттерны проектирования из книги "банды четырех" (GoF) делятся на три категории в зависимости от решаемых ими задач:

  1. Порождающие (Creational Patterns)

    Отвечают за процесс создания объектов, делая систему более гибкой и независимой от конкретных классов.

    • Цель: Инкапсулировать и делегировать создание объектов.
    • Примеры:
      • Фабричный метод (Factory Method): Создание объекта делегируется подклассам.
      • Абстрактная фабрика (Abstract Factory): Создание семейств связанных объектов.
      • Строитель (Builder): Пошаговое создание сложных объектов.
      • Одиночка (Singleton): Гарантия существования единственного экземпляра класса.
  2. Структурные (Structural Patterns)

    Определяют, как классы и объекты могут быть скомбинированы для формирования более крупных структур с новой функциональностью.

    • Цель: Организация взаимодействия между объектами.
    • Примеры:
      • Адаптер (Adapter): Преобразование интерфейса одного класса в интерфейс другого.
      • Декоратор (Decorator): Динамическое добавление обязанностей объекту.
      • Фасад (Facade): Предоставление простого интерфейса к сложной системе.
      • Компоновщик (Composite): Объединение объектов в древовидную структуру.
  3. Поведенческие (Behavioral Patterns)

    Определяют алгоритмы и способы взаимодействия между объектами, распределяя обязанности между ними.

    • Цель: Управление коммуникацией и взаимодействием объектов.
    • Примеры:
      • Стратегия (Strategy): Инкапсуляция и взаимозаменяемость алгоритмов.
      • Наблюдатель (Observer): Определение зависимости "один ко многим" для оповещения об изменениях.
      • Шаблонный метод (Template Method): Определение "скелета" алгоритма в базовом классе с возможностью переопределения шагов в подклассах.
      • Цепочка обязанностей (Chain of Responsibility): Передача запроса по цепочке обработчиков.