From e035ef4cb70f459f964f61ec88d4ec0711ca353d Mon Sep 17 00:00:00 2001 From: bekodeg Date: Tue, 10 Dec 2024 10:34:50 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lab5-6/img_4.png | Bin 0 -> 43568 bytes Lab5-6/img_5.png | Bin 0 -> 24954 bytes Lab5-6/img_6.png | Bin 0 -> 7388 bytes Lab5-6/lab6.md | 77 +++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 Lab5-6/img_4.png create mode 100644 Lab5-6/img_5.png create mode 100644 Lab5-6/img_6.png diff --git a/Lab5-6/img_4.png b/Lab5-6/img_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e0663a134dc909e71063231594d6b33ed172ec51 GIT binary patch literal 43568 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 literal 0 HcmV?d00001 diff --git a/Lab5-6/img_6.png b/Lab5-6/img_6.png new file mode 100644 index 0000000000000000000000000000000000000000..caa59afa94083bd1ab9e2cbc67096e0a78ed63e9 GIT binary patch literal 7388 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 U#MeH+M?sM4HBFTgC9{D40vrqQIRF3v literal 0 HcmV?d00001 diff --git a/Lab5-6/lab6.md b/Lab5-6/lab6.md index 2e11678..93cf5b7 100644 --- a/Lab5-6/lab6.md +++ b/Lab5-6/lab6.md @@ -7,15 +7,86 @@ 2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности, относящиеся к той же предметной области, что описаны в задании и реализация которых бы в приложении потребовала применения паттерна. - ### Ограничения: + ### Ограничения - На каждый паттерн свои сущности - - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, а не элементы разработки (что-то типа «У меня паттерн Singleton, укажу ка я класс-подключение к БД через него», не принимается). + - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, + а не элементы разработки (что-то типа «У меня паттерн Singleton, + укажу ка я класс-подключение к БД через него», не принимается). 3) Создать диаграммы классов, отражающие взаимодействие новых сущностей (а также используемый паттерн) с классами, созданными в рамках 3 лабораторной работы. Отдельно отметить классы, которые являются участниками паттерна -## Вариант 3: _AbstractFactory, FactoryMethod, ObjectPool._ +## Вариант 3 _AbstractFactory, FactoryMethod, ObjectPool._ ### Паттерн AbstractFactory +Паттерн "Абстрактная фабрика" (Abstract Factory) предоставляет интерфейс для создания семейств +взаимосвязанных объектов с определенными интерфейсами без указания конкретных типов данных объектов. + +Участники + +- AbstractProductA и AbstractProductB – абстрактные классы, определяющие интерфейс для классов, +объекты которых будут создаваться в программе +- ProductA1 / ProductA2 и ProductB1 / ProductB2 – конкретные классы, +представляющие конкретную реализацию абстрактных классов. +- AbstractFactory - Абстрактный класс фабрики определяет методы для создания объектов. +Причем методы возвращают абстрактные продукты, а не их конкретные реализации. +- Client – класс клиента, использующий класс фабрики для создания объектов. +При этом он использует исключительно абстрактный класс фабрики AbstractFactory +и абстрактные классы продуктов AbstractProductA и AbstractProductB и никак не зависит от их конкретных реализаций. + +Классы, реализующие паттерн: + +- IReportFactory (Abstract Factory) интерфейс фабрики для создания отчетов. +- FivePointReportFactory (Concrete Factory) фабрика для 5-балльной системы. +- HundredPointReportFactory (Concrete Factory) фабрика для 100-балльной системы. +- IPerformanceReport (Abstract Product) интерфейс для отчета по успеваемости. +- FivePointPerformanceReport и HundredPointPerformanceReport (Concrete Products) конкретные реализации отчетов по успеваемости для 5- и 10-балльной систем. +- ILaggingStudentsReport (Abstract Product) интерфейс для отчета по отстающим студентам. +- FivePointLaggingStudentsReport и HundredPointLaggingStudentsReport (Concrete Products) отчеты по отстающим студентам для 5- и 10-балльной систем. +- ReportManager (Client) класс, который обрабатывает отчеты + +![img_4.png](img_4.png) + +### Паттерн FactoryMethod + +Фабричный метод (Factory Method) - это паттерн, который определяет интерфейс для создания объектов некоторого класса, +но непосредственное решение о том, объект какого класса создавать происходит в подклассах. +То есть паттерн предполагает, что базовый класс делегирует создание объектов классам-наследникам. + +Участники: + +- Product – интерфейс или абстрактный класс, определяющий структуру создаваемых объектов. +- ConcreteProductA и ConcreteProductB – конкретные реализации интерфейса “Product”, представляющие первый и второй тип продукта. +- Creator – абстрактный класс или интерфейс, который определяет фабричный метод для создания объектов типа “Product”. +- ConcreteCreatorA и ConcreteCreatorB – конкретные реализации “Creator”, которая создаёт объекты типа “ConcreteProductA” и “ConcreteCreatorB” соответственно. + +Классы, реализующие паттерн: + +- Product IReport – определяет интерфейс для всех отчетов. +- ConcreteProductA и ConcreteProductB GradeReport и AttendanceReport – конкретные реализации интерфейса “IReport”. +- Creator ReportCreator – определяет фабричный метод для создания объектов типа “IReport”. +- ConcreteCreatorA и ConcreteCreatorB GradeReportCreator и AttendanceReportCreator – конкретные реализации “ReportCreator”. + +![img_5.png](img_5.png) + +### Паттерн ObjectPool + +Object Pool (пул объектов) — это поведенческий паттерн, который используется для оптимизации управления ресурсами. +Он позволяет многократно использовать уже созданные объекты вместо их повторного создания и уничтожения. +Это особенно полезно, когда создание объектов является дорогой операцией с точки зрения времени или ресурсов. + +Участники: + +- Pool – управляет коллекцией объектов. Отвечает за выдачу и возврат объектов из пула. Решает, когда создавать новый объект или использовать существующий. +- ReusableObject (повторно используемый объект) - объект, который находится в пуле и может быть многократно использован. Включает логику и состояние объекта. +- Client - получает объект из пула для использования. Возвращает объект обратно в пул, когда он больше не нужен. + +Классы, реализующие паттерн: + +- Pool FormatPool – управляет доступностью объектов “Format”. Позволяет выдавать объекты формы обучения для студентов. +- ReusableObject Format – содержит данные, связанные с конкретной формой обучения. +- Client Student – представляет студента и содержит данные о нем. + +![img_6.png](img_6.png) \ No newline at end of file