🎉 Ура! После трёх лет работы, я наконец выпустил английскую версию книги о паттернах! Вот она »

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

Эти паттерны решают задачи эффективного и безопасного взаимодействия между объектами программы.

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