Посредник
Mediator
Last updated
Was this helpful?
Mediator
Last updated
Was this helpful?
Паттерн Посредник (Mediator) – это поведенческий шаблон проектирования, который используется для упрощения взаимодействия между объектами путем вынесения логики их взаимодействия в отдельный класс. Этот класс выступает в роли посредника, который контролирует и координирует взаимодействие между объектами, вместо того чтобы позволять им обмениваться информацией напрямую. Используется, когда имеется большое количество объектов, каждый из которых должен взаимодействовать с другими объектами, и прямое взаимодействие между всеми парами объектов становится сложным и запутанным.
Упрощение взаимодействия между объектами
Паттерн обеспечивает централизованное взаимодействие между объектами, устраняя необходимость прямого взаимодействия между каждой парой объектов.
Снижение зависимости между объектами
Паттерн позволяет объектам взаимодействовать друг с другом через абстрактный интерфейс, не зависящий от конкретных классов. Это позволяет объектам меняться независимо друг от друга, не затрагивая другие части системы.
Избавление от лишней логики взаимодействия в классах
Появляется возможность очистить классы от избыточной логики, связанной с их взаимодействием. Вместо того чтобы каждый класс самостоятельно управлял своими зависимостями и коммуникацией с другими классами, эта логика выносится в посредник.
Устранение прямых зависимостей между объектами.
Уменьшение дублирования кода. Паттерн позволяет выделить поведение, которое должно быть общим для нескольких объектов, в отдельный класс посредника.
Расширяемость системы. Паттерн облегчает добавление новых объектов и изменение взаимодействия между ними. Новые объекты могут быть легко интегрированы в систему, а изменения взаимодействия между объектами могут быть внесены в посредника.
Увеличение количества кода за счёт появления дополнительных иерархий классов.
Увеличение времени выполнения. Объекты отправляют сообщения посреднику, который затем передает их другим объектам. Этот дополнительный может привести к снижению производительности программы.
Паттерн Посредник может быть реализован как Одиночка, чтобы гарантировать единственный экземпляр посредника в системе. Это обеспечивает централизованный контроль и управление взаимодействием между объектами.
Паттерн Посредник может работать с паттерном Стратегия для динамического изменения поведения объектов. Посредник может выбирать различные стратегии, в зависимости от текущего состояния системы, и передавать их объектам для выполнения соответствующих действий.
Паттерн посредник может использоваться вместе с паттерном Цепочка обязанностей для передачи запросов между объектами. Посредник может принимать запросы и передавать их по цепочке объектов, пока один из объектов не обработает запрос.