/
konakovrd
/
software-design
Обзор
Документация
Войти
/
konakovrd
/
software-design
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/sber/SchoolApplication.java
54 строки
2 KB
Konakov Roman
homework4
20 июн 2025, 22:10
20 июн 2025, 22:10
1f020c3
Код
Авторство
О чём код?
package ru.sber; import ru.sber.model.Olympiad; import ru.sber.model.Student; import ru.sber.model.Subject; import ru.sber.model.enums.OlympiadType; import ru.sber.model.enums.StatusStateEnum; import ru.sber.service.observer.AcademicGroupService; import ru.sber.service.observer.StudentService; import ru.sber.service.statemachine.SubjectService; import ru.sber.service.strategy.*; import java.util.Arrays; import java.util.List; public class SchoolApplication { public static void main(String[] args) { //Создаём сервисный слой StudentService studentService = new StudentService(); AcademicGroupService academicGroupService = new AcademicGroupService(); studentService.addObserver(academicGroupService); SubjectService subjectService = new SubjectService(); List<OlympiadStrategy> strategies = List.of( new MathOlympiadStrategy(), new PhysicsOlympiadStrategy(), new SportsOlympiadStrategy() ); OlympiadService olympiadService = new OlympiadService(strategies); Arrays.stream(OlympiadType.values()) .map(Olympiad::new) .forEach(olympiadService::startOlympiad); Subject subject = subjectService.createSubject(new Subject("Математика")); subjectService.setState(subject, StatusStateEnum.REQUEST); try { subjectService.setState(subject, StatusStateEnum.DRAFT); } catch (Exception e) { System.out.println(e.getMessage()); } Student student = studentService.create( Student.builder() .name("Баран") .surname("Баранов") .patronymic("Баранович") .build() ); } }