В этом репозитории мы последовательно выполняем три лабораторные работы.
Тема: «Модель документа с полной историей изменений»
Технологии: Java 23 + Swing
Паттерны: ≥ 6 классических GoF (Factory Method, Singleton, Decorator, Command, Memento, Observer)
Краткое содержание:
- Document + три типа (
Text
,PDF
,Spreadsheet
) через Factory Method - История изменений с Undo/Redo/Jump (Memento + Caretaker)
- Команды для действий пользователя (Command + Invoker)
- Расширения через Decorator: шифрование содержимого и логирование операций (Singleton для сбора логов)
- Автоматическое обновление интерфейса и консоли (Observer)
👉 Релиз ЛР 1 → v1-lab-patterns
📥 Скачать отчёт ЛР 1 (DOCX)
Тема: «IoC и DI средствами Spring Framework. AOP»
Технологии: Java 23 + Spring Framework 6.2.6
Паттерны: IoC/DI, AOP, Factory Method, Decorator, Memento, Observer, Command
Краткое содержание:
- Spring IoC/DI
— все инфраструктурные компоненты (фабрики, GUI, декораторы, логгер истории, аспект) объявлены как Spring Bean - Внедрение зависимостей (DI)
— через конструкторы иObjectProvider
— бизнес-классы (документы, команды) остаются чистыми POJO - AOP-логирование
— аннотация@Loggable
+LoggingAspect
— автоматический сбор CALL/RETURN/ERROR - Контекст Spring
— создаётся и закрывается вmain()
, остальной код работает через DI
👉 Релиз ЛР 2 → v2-lab-spring
📥 Скачать отчёт ЛР 2 (DOCX)
Тема: «Основы многопоточности в Java»
Технологии: Java 23 + Swing + Concurrency
Краткое содержание:
- Producer–Consumer (генерация запросов → очередь → исполнители)
- ClientGenerator — настраиваемая генерация burst/jitter
- RequestQueue —
LinkedBlockingQueue<Request>
- WorkerPool и
Worker
— выполнение команд надDocument
- StatsAggregator (
ClientStat
,WorkerStat
) — сбор задержек, throughput, busy/idle - SystemMonitorGUI — вкладки
Queue
иLogs
для мониторинга - Graceful shutdown — poison-pill
SHUTDOWN
, остановка потоков
👉 Релиз ЛР 3 → v3-lab-multithreading
📥 Скачать отчёт ЛР 3 (DOCX)
Связаться со мной можно через Telegram или по электронной почте: