51 lines
3.3 KiB
Markdown
51 lines
3.3 KiB
Markdown
# Лабораторная работа №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 - Логика сайта лмс
|
||
|