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

Что такое шаблон проектирования посредника?

Как упоминалось во вводном абзаце, цель шаблона проектирования посредника состоит в том, чтобы определить объект, который инкапсулирует, как набор объектов взаимодействует друг с другом. Он попадает в категорию паттернов поведенческого проектирования. Почему? Поведенческие шаблоны проектирования описывают шаблоны взаимодействия между объектами, они связаны с распределением ответственности между объектами, и шаблон проектирования посредника следует тому же подходу.

Прочтите: Когда использовать составной шаблон проектирования в Java »

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

Прочтите: « Все, что вам нужно знать о шаблоне разработки метода шаблонов »

Другим примером может быть объектная модель документа в веб-браузерах. Каждый раз, когда мы загружаем веб-страницу, браузер создает объектную модель документа (древовидную структуру, представляющую каждый элемент веб-страницы) этой страницы. Веб-страница представлена ​​объектом документа и считается точкой входа в контент веб-страницы. Любая передача события, трансляция или подписка происходит через сам объект документа. Вместо привязки к событиям отдельных узлов объекту более высокого уровня (Document) дается ответственность за уведомление подписчиков о событиях взаимодействия. Итак, объект документа передает информацию между другими элементами (узлами) на веб-странице. Вы можете думать об объекте документа как о посреднике, а модель DOM можно рассматривать как простейший и распространенный практический взгляд на шаблон проектирования посредника.

Прочтите: Что такое шаблон проектирования адаптера: краткое объяснение »

Давайте посмотрим на простой пример шаблона проектирования посредника в java. Мы собираемся использовать очень абстрактный пример службы обмена сообщениями, в которой два пользователя будут отправлять сообщение друг другу. Но перед этим нам нужно представить ключевых игроков шаблона проектирования посредника. Вот они:

  1. Посредник. Посредник определяет интерфейс для связи между объектами.
  2. Конкретный посредник. Его можно рассматривать как реализацию интерфейса посредника.
  3. Классы коллег. Эти классы передают информацию через посредника.

Для простоты наш пример будет содержать только конкретный посредник и конкретный класс коллег.

Простой пример шаблона проектирования посредника на java (пример чата)

1. Посредник (Посредник отправки сообщения)

Fig- пример шаблона проектирования посредника на java - класс посредника

Читайте полную историю здесь: https://www.decipherzone.com/blog-detail/mediator-design-pattern