# Лабораторная работа №7.
# Применение структурных паттернов.

## Задание
1) Дать описание паттернов, указанных во вариантах, для каких целей они могут применяться,
    какие участники там фигурируют.
2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности,
   относящиеся к той же предметной области, что описаны в задании и реализация которых 
    бы в приложении потребовала применения паттерна.
    ### Ограничения
    - На каждый паттерн свои сущности
    - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы,
   а не элементы разработки (что-то типа «У меня паттерн Singleton,
   укажу ка я класс-подключение к БД через него», не принимается).
3) Создать диаграммы классов, отражающие взаимодействие новых
сущностей (а также используемый паттерн) с классами,
созданными в рамках 3 лабораторной работы. Отдельно отметить
классы, которые являются участниками паттерна

## Вариант 3 _Mediator, Mediator (2 различных реализации), Strategy._

### Паттерн Mediator

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

Участники

- Mediator - представляет интерфейс для взаимодействия с объектами Colleague.
- Colleague - представляет интерфейс для взаимодействия с объектом Mediator.
- ConcreteColleague1 и ConcreteColleague2 - конкретные классы коллег, 
которые обмениваются друг с другом через объект Mediator.
- ConcreteMediator - конкретный посредник, реализующий интерфейс типа Mediator.

Классы, реализующие паттерн:
- Secretary Mediator - Секретарь
- Client Colleague - Участник вузовской системы 
- Teacher ConcreteColleague1 - Преподователь
- Student ConcreteColleague2 - Студент
- Dean`s Office ConcreteMediator - Деканат

![img_8.png](img_8.png)

- ILms Mediator - Сайт лмс
- User Colleague - Пользователь лмс
- Teacher ConcreteColleague1 - Преподователь
- Student ConcreteColleague2 - Студент
- Lms ConcreteMediator - Логика сайта лмс