diff --git a/Lab5-6/img_7.png b/Lab5-6/img_7.png new file mode 100644 index 0000000..9d7558f Binary files /dev/null and b/Lab5-6/img_7.png differ diff --git a/Lab5-6/lab7.md b/Lab5-6/lab7.md new file mode 100644 index 0000000..67ca21d --- /dev/null +++ b/Lab5-6/lab7.md @@ -0,0 +1,44 @@ +# Лабораторная работа №7. +# Применение структурных паттернов. + +## Задание +1) Дать описание паттернов, указанных во вариантах, для каких целей они могут применяться, + какие участники там фигурируют. +2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности, + относящиеся к той же предметной области, что описаны в задании и реализация которых + бы в приложении потребовала применения паттерна. + ### Ограничения + - На каждый паттерн свои сущности + - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, + а не элементы разработки (что-то типа «У меня паттерн Singleton, + укажу ка я класс-подключение к БД через него», не принимается). +3) Создать диаграммы классов, отражающие взаимодействие новых +сущностей (а также используемый паттерн) с классами, +созданными в рамках 3 лабораторной работы. Отдельно отметить +классы, которые являются участниками паттерна + +## Вариант 3 _Mediator, Mediator (2 различных реализации), Strategy._ + +### Паттерн Mediator + +Паттерн "Посредник" (Mediator) представляет такой шаблон проектирования, +который обеспечивает взаимодействие множества объектов без необходимости ссылаться друг на друга. +Тем самым достигается слабосвязанность взаимодействующих объектов. + +Участники + +- Mediator - представляет интерфейс для взаимодействия с объектами Colleague. +- Colleague - представляет интерфейс для взаимодействия с объектом Mediator. +- ConcreteColleague1 и ConcreteColleague2 - конкретные классы коллег, +которые обмениваются друг с другом через объект Mediator. +- ConcreteMediator - конкретный посредник, реализующий интерфейс типа Mediator. + +Классы, реализующие паттерн: + +- INotificationSystem Mediator - Интерфейс описывающий систему оповищения студентов +- AbstractWorker Colleague - работники вуза +- Teacher ConcreteColleague1 - Преподователь +- Secretary ConcreteColleague2 - Секретарь +- NotificationSystem ConcreteMediator - Система оповищения студентов + +![img_7.png](img_7.png)