Паттерны проектирования в объектно-ориентированном дизайне делятся на три основные категории, каждая служит определённым целям в архитектуре и разработке ПО.
Эти паттерны сосредоточены на механизмах создания объектов, обеспечивая гибкость в том, что создаётся, как это создаётся, когда это создаётся и кто это создаёт.
Распространённые порождающие паттерны:
Builder — Строит сложные объекты поэтапноFactory Method — Создаёт объекты без указания конкретных классовAbstract Factory — Создаёт семейства связанных объектовSingleton — Гарантирует, что класс имеет только один экземплярPrototype — Создаёт объекты путём клонирования существующих экземпляровObject Pool — Переиспользует объекты для повышения производительностиЭти паттерны отвечают за композицию объектов и связи между сущностями, помогая строить более крупные структуры, сохраняя их гибкими и эффективными.
Распространённые структурные паттерны:
Adapter — Делает несовместимые интерфейсы совместимымиBridge — Отделяет абстракцию от реализацииFaçade — Предоставляет упрощённый интерфейс к сложным подсистемамDecorator — Динамически добавляет функциональность объектамComposite — Единообразно работает с отдельными объектами и их композициямиFlyweight — Разделяет общие данные для снижения потребления памятиProxy — Контролирует доступ к другому объектуЭти паттерны сосредоточены на взаимодействии между объектами и распределении ответственности, определяя, как объекты общаются между собой и распределяют работу.
Распространённые поведенческие паттерны:
Command — Инкапсулирует запросы как объектыIterator — Последовательно обходит элементы, не раскрывая внутреннюю структуруObserver — Уведомляет несколько объектов об изменениях состоянияState — Позволяет объектам менять поведение в зависимости от внутреннего состоянияStrategy — Выбирает алгоритм во время выполненияChain of Responsibility — Передаёт запросы по цепочке обработчиковMediator — Централизует сложное взаимодействие между объектамиInterpreter — Определяет грамматику языка и правила его интерпретацииПаттерн Singleton классифицируется как поведенческий паттерн проектирования, потому что он контролирует, как объекты взаимодействуют и распределяют ответственность.
Новый — ещё не проверен сообществом
Вы