Введение

Шаблон проектирования архитектуры программного обеспечения
В разработке программного обеспечения шаблон "Посредник" определяет объект, инкапсулирующий способы взаимодействия набора объектов. Этот шаблон считается поведенческим, поскольку он может изменять поведение программы во время выполнения. В объектно-ориентированном программировании программы часто состоят из множества классов. Бизнес-логика и вычисления распределены между этими классами. Однако, по мере добавления новых классов в программу, особенно при сопровождении и/или рефакторинге, проблема взаимодействия между этими классами может усложняться. Это затрудняет чтение и поддержку программы. Кроме того, внесение изменений в программу может оказаться сложным, поскольку любое изменение может повлиять на код в нескольких других классах. С использованием шаблона "Посредник" взаимодействие между объектами инкапсулируется в объекте-посреднике. Объекты больше не взаимодействуют напрямую друг с другом, а взаимодействуют через посредника. Это снижает зависимости между взаимодействующими объектами, тем самым уменьшая связанность.

Обзор

Шаблон проектирования «Посредник» — один из двадцати трех известных шаблонов проектирования, описывающих способы решения часто встречающихся задач проектирования для создания гибкого и повторно используемого объектно-ориентированного программного обеспечения, то есть объектов, которые проще реализовать, изменять, тестировать и повторно использовать.

Проблемы, которые может решить модель дизайна медиатора

Следует избегать тесной связанности между набором взаимодействующих объектов. Должна быть возможность изменять взаимодействие между набором объектов независимо друг от друга. Определение набора взаимодействующих объектов через прямой доступ и изменение друг друга негибко, поскольку это приводит к тесной связанности объектов, делая невозможным изменение взаимодействия без изменения самих объектов. Это препятствует повторному использованию объектов и затрудняет их тестирование. Тесно связанные объекты сложно реализовывать, изменять, тестировать и повторно использовать, так как они зависят от и знают о множестве других объектов.

Решения, описанные в модели моделирования медиатора

Определите отдельный (посредник) объект, инкапсулирующий взаимодействие между набором объектов. Объекты делегируют свое взаимодействие объекту-посреднику, вместо того чтобы взаимодействовать друг с другом напрямую. Объекты взаимодействуют друг с другом опосредованно через объект-посредник, который управляет и координирует это взаимодействие. Это обеспечивает слабую связанность объектов. Они лишь ссылаются на свой объект-посредник и знают о нем, не имея при этом явных знаний друг о друге. См. также диаграмму классов и диаграмму последовательностей UML ниже.

Определение

Суть шаблона «Медиатор» заключается в «определении объекта, инкапсулирующего способы взаимодействия набора объектов». Он способствует слабой связанности, предотвращая прямые ссылки объектов друг на друга, и позволяет изменять их взаимодействие независимо. Клиентские классы могут использовать медиатор для отправки сообщений другим клиентам и получать сообщения от них через событие, возникающее в классе медиатора.