Найти в Дзене
using Dev

Посредник C#

Архитектурный паттерн Посредник (Mediator) в C# предназначен для уменьшения связанности между компонентами системы, позволяя им общаться друг с другом через посредника, вместо прямого взаимодействия. Этот паттерн упрощает коммуникацию между объектами, повышает модульность и масштабируемость системы, а также упрощает поддержку и модификацию кода в будущем. Паттерн Посредник определяет объект, который инкапсулирует взаимодействие набора объектов. Посредник обеспечивает слабую связанность, предотвращая явные ссылки объектов друг на друга, и позволяет изменять их взаимодействие независимо. Этот паттерн особенно полезен для упрощения коммуникации между компонентами графического интерфейса пользователя (GUI) в приложении, где Посредник может выступать в роли контроллера в паттерне MVC (Model-View-Controller). Реализация паттерна Посредник в C# может быть описана следующим алгоритмом: Создадим интерфейс IMediator Работу паттерна рассмотрим на примере организации у которой есть Директор и рабо
Оглавление

Архитектурный паттерн Посредник (Mediator) в C# предназначен для уменьшения связанности между компонентами системы, позволяя им общаться друг с другом через посредника, вместо прямого взаимодействия. Этот паттерн упрощает коммуникацию между объектами, повышает модульность и масштабируемость системы, а также упрощает поддержку и модификацию кода в будущем.

Описание

Паттерн Посредник определяет объект, который инкапсулирует взаимодействие набора объектов. Посредник обеспечивает слабую связанность, предотвращая явные ссылки объектов друг на друга, и позволяет изменять их взаимодействие независимо. Этот паттерн особенно полезен для упрощения коммуникации между компонентами графического интерфейса пользователя (GUI) в приложении, где Посредник может выступать в роли контроллера в паттерне MVC (Model-View-Controller).

Реализация шаблона в общем виде

Реализация паттерна Посредник в C# может быть описана следующим алгоритмом:

  1. Определение интерфейса Посредника (Mediator): Создайте интерфейс, который будет содержать метод для отправки сообщений между компонентами. Этот метод должен принимать отправителя и сообщение в качестве параметров.
  2. Определение интерфейса Компонента (Component): Создайте интерфейс для компонентов, которые будут общаться через посредника. Этот интерфейс должен содержать метод для получения сообщений.
  3. Реализация Конкретного Посредника (Concrete Mediator): Создайте класс, который реализует интерфейс Посредника. В этом классе должны быть хранятся ссылки на все компоненты, с которыми он будет общаться. Реализуйте метод отправки сообщений, который будет определять, какому компоненту отправить сообщение, исходя из отправителя.
  4. Реализация Конкретных Компонентов (Concrete Components): Создайте классы, которые реализуют интерфейс Компонента. Каждый компонент должен иметь ссылку на Посредника и использовать его для отправки и получения сообщений.
  5. Использование Посредника: В вашем приложении создайте экземпляры Конкретного Посредника и Конкретных Компонентов. Компоненты должны быть связаны с Посредником, а не напрямую друг с другом. Когда компонент хочет отправить сообщение другому компоненту, он отправляет его через Посредника.
  6. Обработка сообщений: Когда Посредник получает сообщение, он определяет, какому компоненту оно должно быть отправлено, и вызывает соответствующий метод получения сообщения у этого компонента.

Пример реализации

Создадим интерфейс IMediator

-2

Работу паттерна рассмотрим на примере организации у которой есть Директор и работник - Дизайнер. А так же контролер посредник через которого директор отдает указания.

Создадим базовый класс сотрудника.

-3

От него создадим двух наследников.

-4
-5

Создадим класс контролера

-6

Применение

-7
-8

Наука
7 млн интересуются