diff --git a/Lab5-6/img_10.png b/Lab5-6/img_10.png new file mode 100644 index 0000000..cb91a74 Binary files /dev/null and b/Lab5-6/img_10.png differ diff --git a/Lab5-6/img_9.png b/Lab5-6/img_9.png deleted file mode 100644 index e62d229..0000000 Binary files a/Lab5-6/img_9.png and /dev/null differ diff --git a/Lab5-6/lab7.md b/Lab5-6/lab7.md index ff3b36f..f8dc69e 100644 --- a/Lab5-6/lab7.md +++ b/Lab5-6/lab7.md @@ -52,20 +52,23 @@ ### Паттерн Strategy -Strategy (Стратегия) — шаблон проектирования, который определяет набор алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. В зависимости от ситуации мы можем легко заменить один используемый алгоритм другим. При этом замена алгоритма происходит независимо от объекта, который использует данный алгоритм. +Strategy (Стратегия) — шаблон проектирования, который определяет набор алгоритмов, инкапсулирует каждый из них +и обеспечивает их взаимозаменяемость. +В зависимости от ситуации мы можем легко заменить один используемый алгоритм другим. +При этом замена алгоритма происходит независимо от объекта, который использует данный алгоритм. Участники: -- IStrategy: интерфейс, который определяет метод Algorithm(). Это общий интерфейс для всех реализующих его алгоритмов. Вместо интерфейса здесь также можно было бы использовать абстрактный класс. -- ConcreteStrategy1 и ConcreteStrategy2: классы, которые реализуют интерфейс IStrategy, предоставляя свою версию метода Algorithm(). Подобных классов-реализаций может быть множество. +- IStrategy: интерфейс, который определяет метод Algorithm(). Это общий интерфейс для всех реализующих его алгоритмов. +Вместо интерфейса здесь также можно было бы использовать абстрактный класс. +- ConcreteStrategy1 и ConcreteStrategy2: классы, которые реализуют интерфейс IStrategy, +предоставляя свою версию метода Algorithm(). Подобных классов-реализаций может быть множество. - Context: класс, который хранит ссылку на объект IStrategy и связан с интерфейсом IStrategy отношением агрегации. Классы, реализующие паттерн: -- IStrategy IReportStrategy – общий интерфейс для всех стратегий формирования отчетов. -- PdfReportStrategy, ExcelkReportStrategy, WordReportStrategy - классы, реализующие формирование отчета в pdf, excel и word. -- Context ReportContext – контекст, который использует стратегию для формирования отчета. +- IStrategy IStudentWorkChecker – общий интерфейс для всех стратегий проверку индивидуальной работы студента. +- СourseWorkChecker, LabWorkChecker - классы, реализующие проверку ирс +- Context Teacher – Преподаватель выбирает подходящцю стратегию для проверки работы -Этот подход позволяет легко добавлять новые форматы отчетов (например, JSON или HTML) без изменения существующего кода, реализуя принцип открытости/закрытости. - -![img_9.png](img_9.png) \ No newline at end of file +![img_10.png](img_10.png) \ No newline at end of file