diff --git a/Lab5-6/img.png b/Lab5-6/img.png index f8d1f64..5ca1e33 100644 Binary files a/Lab5-6/img.png and b/Lab5-6/img.png differ diff --git a/Lab5-6/img_3.png b/Lab5-6/img_3.png new file mode 100644 index 0000000..efaeb35 Binary files /dev/null and b/Lab5-6/img_3.png differ diff --git a/Lab5-6/lab5.md b/Lab5-6/lab5.md index 6554894..a22e99d 100644 --- a/Lab5-6/lab5.md +++ b/Lab5-6/lab5.md @@ -40,10 +40,10 @@ Классы, реализующие паттерн: - IStudentTracker (Target) – Интерфейс системы отслеживания успеваемости студентов - StudentManager (Client) – Использует данные о успеваемости, для определеня судьбы студентов -- UniversitySystem (Adaptee) – Реализализовывает систему отслеживания успеваемости студентов +- AttendanceTracker (Adaptee) – Реализализовывает систему отслеживания посещаемости студентов - StudentTrackerAdapter (Adapter) – "оборачивает" стороннюю систему и преобразует её в интерфейс, ожидаемый клиентом -![img.png](img.png) +![img_3.png](img_3.png) ### Паттерн Composite Паттерн Компоновщик (Composite) объединяет группы объектов в древовидную структуру @@ -66,11 +66,11 @@ Классы, реализующие паттерн: - IStudent (Component) – Студент обучающийся в вузе -- Postgraduate (Composite) – Аспирант обучающийся в вузе и обучающий других студентов -- Bachelor (Leaf) – Бакалавр +- Group (Composite) – Группировка студентов (групаа в потоке, поток, курс...) +- Student (Leaf) – Конкретный студент - University (Client) – Обеспечивает обучение студентов -![img_1.png](img_1.png) +![img.png](img.png) ### Паттерн Proxy @@ -88,7 +88,7 @@ Классы, реализующие паттерн: - IStudent (Subject) – Студент - Student (RealSubject) – Студент из группы -- Elder (Proxy) – Передаёт обработаную информацию студенту -- Lecturer (Client) - Передаёт информацию студенту через старосту +- Elder (Proxy) – Староста отвечает на вопросы преподователя, при надомности спрашивает студентов группы +- Lecturer (Client) - Задаёт вопросы студентам через старосту ![img_2.png](img_2.png) \ No newline at end of file diff --git a/Lab5-6/lab6.md b/Lab5-6/lab6.md new file mode 100644 index 0000000..2e11678 --- /dev/null +++ b/Lab5-6/lab6.md @@ -0,0 +1,21 @@ +# Лабораторная работа №6. +# Применение структурных паттернов. + +## Задание +1) Дать описание паттернов, указанных во вариантах, для каких целей они могут применяться, + какие участники там фигурируют. +2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности, + относящиеся к той же предметной области, что описаны в задании и реализация которых + бы в приложении потребовала применения паттерна. + ### Ограничения: + - На каждый паттерн свои сущности + - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, а не элементы разработки (что-то типа «У меня паттерн Singleton, укажу ка я класс-подключение к БД через него», не принимается). +3) Создать диаграммы классов, отражающие взаимодействие новых +сущностей (а также используемый паттерн) с классами, +созданными в рамках 3 лабораторной работы. Отдельно отметить +классы, которые являются участниками паттерна + +## Вариант 3: _AbstractFactory, FactoryMethod, ObjectPool._ + +### Паттерн AbstractFactory +