LABWORK-5 #3

Merged
bekodeg merged 10 commits from LABWORK-5 into dev 2024-12-19 15:52:39 +04:00
4 changed files with 28 additions and 7 deletions
Showing only changes of commit 97836996bc - Show all commits

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
Lab5-6/img_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -40,10 +40,10 @@
Классы, реализующие паттерн: Классы, реализующие паттерн:
- IStudentTracker (Target) Интерфейс системы отслеживания успеваемости студентов - IStudentTracker (Target) Интерфейс системы отслеживания успеваемости студентов
- StudentManager (Client) Использует данные о успеваемости, для определеня судьбы студентов - StudentManager (Client) Использует данные о успеваемости, для определеня судьбы студентов
- UniversitySystem (Adaptee) Реализализовывает систему отслеживания успеваемости студентов - AttendanceTracker (Adaptee) Реализализовывает систему отслеживания посещаемости студентов
- StudentTrackerAdapter (Adapter) "оборачивает" стороннюю систему и преобразует её в интерфейс, ожидаемый клиентом - StudentTrackerAdapter (Adapter) "оборачивает" стороннюю систему и преобразует её в интерфейс, ожидаемый клиентом
![img.png](img.png) ![img_3.png](img_3.png)
### Паттерн Composite ### Паттерн Composite
Паттерн Компоновщик (Composite) объединяет группы объектов в древовидную структуру Паттерн Компоновщик (Composite) объединяет группы объектов в древовидную структуру
@ -66,11 +66,11 @@
Классы, реализующие паттерн: Классы, реализующие паттерн:
- IStudent (Component) Студент обучающийся в вузе - IStudent (Component) Студент обучающийся в вузе
- Postgraduate (Composite) Аспирант обучающийся в вузе и обучающий других студентов - Group (Composite) Группировка студентов (групаа в потоке, поток, курс...)
- Bachelor (Leaf) Бакалавр - Student (Leaf) Конкретный студент
- University (Client) Обеспечивает обучение студентов - University (Client) Обеспечивает обучение студентов
![img_1.png](img_1.png) ![img.png](img.png)
### Паттерн Proxy ### Паттерн Proxy
@ -88,7 +88,7 @@
Классы, реализующие паттерн: Классы, реализующие паттерн:
- IStudent (Subject) Студент - IStudent (Subject) Студент
- Student (RealSubject) Студент из группы - Student (RealSubject) Студент из группы
- Elder (Proxy) Передаёт обработаную информацию студенту - Elder (Proxy) Староста отвечает на вопросы преподователя, при надомности спрашивает студентов группы
- Lecturer (Client) - Передаёт информацию студенту через старосту - Lecturer (Client) - Задаёт вопросы студентам через старосту
![img_2.png](img_2.png) ![img_2.png](img_2.png)

21
Lab5-6/lab6.md Normal file
View File

@ -0,0 +1,21 @@
# Лабораторная работа №6.
# Применение структурных паттернов.
## Задание
1) Дать описание паттернов, указанных во вариантах, для каких целей они могут применяться,
какие участники там фигурируют.
2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности,
относящиеся к той же предметной области, что описаны в задании и реализация которых
бы в приложении потребовала применения паттерна.
### Ограничения:
- На каждый паттерн свои сущности
- В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, а не элементы разработки (что-то типа «У меня паттерн Singleton, укажу ка я класс-подключение к БД через него», не принимается).
3) Создать диаграммы классов, отражающие взаимодействие новых
сущностей (а также используемый паттерн) с классами,
созданными в рамках 3 лабораторной работы. Отдельно отметить
классы, которые являются участниками паттерна
## Вариант 3: _AbstractFactory, FactoryMethod, ObjectPool._
### Паттерн AbstractFactory