Шаблон проектирования посредника, как следует из названия, определяет объект, который является посредником между другими объектами. Это один из наиболее важных и широко используемых шаблонов поведенческого проектирования, поскольку он способствует слабой связи, запрещая объекты явно взаимодействовать друг с другом. Объект-посредник выполняет задачу передачи информации между ними. Вы можете найти использование такого шаблона проектирования в приложениях, которые включают обмен сообщениями. Если пользователь хочет передать сообщение другим пользователям, объекты, представляющие пользователей, передают свой путь через объект-посредник, который отслеживает всех пользователей и передает их им. Структура приложения могла бы быть довольно запутанной, если бы не было посредника, и каждый пользовательский объект должен был бы отслеживать каждый другой пользовательский объект для связи. Использование шаблона проектирования посредника в подобных случаях уменьшает зависимости между взаимодействующими объектами, в конечном итоге уменьшая взаимосвязь. В этой статье мы собираемся определить шаблон проектирования посредника, упомянуть ключевых участников, составляющих этот шаблон проектирования, объяснить вариант использования на примере шаблона проектирования посредника в java, а также посмотрим, когда использовать шаблон проектирования посредника.
Что такое шаблон проектирования посредника?
Как упоминалось во вводном абзаце, цель шаблона проектирования посредника состоит в том, чтобы определить объект, который инкапсулирует, как набор объектов взаимодействует друг с другом. Он попадает в категорию паттернов поведенческого проектирования. Почему? Поведенческие шаблоны проектирования описывают шаблоны взаимодействия между объектами, они связаны с распределением ответственности между объектами, и шаблон проектирования посредника следует тому же подходу.
Прочтите: Когда использовать составной шаблон проектирования в Java »
С точки зрения аналогии с реальным миром, какое значение может иметь посредник? В этом случае подходящим примером является сигнал светофора. Он передает информацию транспортным средствам, сообщая им, когда нужно двигаться, останавливаться и ждать. Если бы такого посредника не было, и каждый автомобиль должен был бы общаться друг с другом для коммутации, вы можете представить, насколько все могло бы стать зависимым? Сегодня эта проблема не актуальна, потому что существует посредник (светофор), который сигнализирует транспортным средствам, когда двигаться, а когда нет. Точно так же в мире объектов и в таких случаях, как приложение чата, шаблон проектирования посредника обеспечивает лучшее решение для решения проблем с зависимостями.
Прочтите: « Все, что вам нужно знать о шаблоне разработки метода шаблонов »
Другим примером может быть объектная модель документа в веб-браузерах. Каждый раз, когда мы загружаем веб-страницу, браузер создает объектную модель документа (древовидную структуру, представляющую каждый элемент веб-страницы) этой страницы. Веб-страница представлена объектом документа и считается точкой входа в контент веб-страницы. Любая передача события, трансляция или подписка происходит через сам объект документа. Вместо привязки к событиям отдельных узлов объекту более высокого уровня (Document) дается ответственность за уведомление подписчиков о событиях взаимодействия. Итак, объект документа передает информацию между другими элементами (узлами) на веб-странице. Вы можете думать об объекте документа как о посреднике, а модель DOM можно рассматривать как простейший и распространенный практический взгляд на шаблон проектирования посредника.
Прочтите: Что такое шаблон проектирования адаптера: краткое объяснение »
Давайте посмотрим на простой пример шаблона проектирования посредника в java. Мы собираемся использовать очень абстрактный пример службы обмена сообщениями, в которой два пользователя будут отправлять сообщение друг другу. Но перед этим нам нужно представить ключевых игроков шаблона проектирования посредника. Вот они:
- Посредник. Посредник определяет интерфейс для связи между объектами.
- Конкретный посредник. Его можно рассматривать как реализацию интерфейса посредника.
- Классы коллег. Эти классы передают информацию через посредника.
Для простоты наш пример будет содержать только конкретный посредник и конкретный класс коллег.
Простой пример шаблона проектирования посредника на java (пример чата)
1. Посредник (Посредник отправки сообщения)
Fig- пример шаблона проектирования посредника на java - класс посредника
Читайте полную историю здесь: https://www.decipherzone.com/blog-detail/mediator-design-pattern