Перейти к содержанию

GOF

GOF — это набор из 23 классических паттернов проектирования из книги Design Patterns: Elements of Reusable Object-Oriented Software.

Как читать раздел

  1. Сначала понять намерение паттерна, а не копировать форму.
  2. Потом посмотреть, как эта идея раскладывается на объекты метаданных, общие модули, формы и обработчики в 1С.
  3. И только после этого решать, нужен ли паттерн в прикладной задаче или достаточно более простого кода.

Порождающие паттерны

Паттерн Коротко Пример
Абстрактная фабрика (Abstract Factory) Создает семейства связанных объектов через единый интерфейс. AbstractFactory
Строитель (Builder) Разделяет процесс пошаговой сборки сложного объекта и его итоговое представление. Builder
Фабричный метод (Factory Method) Делегирует создание объектов специализированному методу или подклассу. FactoryMethod
Прототип (Prototype) Создает новые объекты копированием заранее настроенного экземпляра. Prototype
Одиночка (Singleton) Ограничивает создание класса одним экземпляром и дает глобальную точку доступа. Singleton

Структурные паттерны

Паттерн Коротко Пример
Адаптер (Adapter) Приводит несовместимый интерфейс к ожидаемому клиентом виду. Adapter
Мост (Bridge) Разделяет абстракцию и реализацию, чтобы их можно было развивать независимо.
Компоновщик (Composite) Позволяет работать с одиночными объектами и их деревьями единообразно.
Декоратор (Decorator) Добавляет объекту поведение через обертку, не меняя исходный класс.
Фасад (Facade) Дает простой внешний вход к сложной подсистеме.
Приспособленец (Flyweight) Выносит общую часть состояния, чтобы экономить память на большом числе однотипных объектов.
Заместитель (Proxy) Подставляет специальный объект вместо реального и контролирует доступ к нему.

Поведенческие паттерны

Паттерн Коротко Пример
Цепочка обязанностей (Chain of Responsibility) Передает запрос по цепочке обработчиков, пока кто-то не возьмет его на себя. ChainOfResponsibility
Команда (Command) Представляет действие как отдельный объект. Command
Интерпретатор (Interpreter) Описывает грамматику языка и интерпретирует выражения этого языка.
Итератор (Iterator) Дает способ обходить коллекцию, не раскрывая ее внутреннее устройство. Iterator
Посредник (Mediator) Централизует взаимодействие между объектами и уменьшает прямые связи между ними. Mediator
Снимок (Memento) Сохраняет и восстанавливает внутреннее состояние объекта. Memento
Наблюдатель (Observer) Подписчики получают уведомление об изменении состояния издателя. Observer
Состояние (State) Перекладывает поведение по состояниям в отдельные объекты-состояния. State
Стратегия (Strategy) Инкапсулирует взаимозаменяемые алгоритмы за единым интерфейсом. Strategy
Шаблонный метод (Template Method) Задает каркас алгоритма, оставляя отдельные шаги на расширение. TemplateMethod
Посетитель (Visitor) Выносит операции над структурой объектов в отдельный объект-посетитель. Visitor