6. Реализация - marejada/FootballClub GitHub Wiki
Слой бизнес логики
Данный слой представлен в пакете BusinessLogic, реализован с использованием паттерна модель предметной области.
В разработанном пакете есть следующие классы:
- Event - базовый класс отвечающий за создание событий.
- Game - класс, отвечающий за игры команды.
- Player - класс, отвечающий за игроков команды.
- RecommendationAssistant - класс, в котором собраны все алгоритмы рекомендаций системы, рекомендации по производимым заменам и тренировкам команды.
- Score - класс, отвечающий за счет в игре.
- Team - класс, отвечающий за нашу команду.
- Training - класс, отвечающий за тренировки команды.
- User - класс, отвечающий за пользователей сервиса.
Слой доступа к данным
Данный слой был реализован в пакете DataAccess. Предоставляет доступ к базе данных.
Сервисный слой
Данный слой служит для связи слоя представления со слоем хранения данных а так же, для взаимодействия со слоем внешнего сервиса. Представлен в пакете ServiceLayer.
Слой доступа внешнего сервиса
Реализация данного слоя представлена в пакете HttpLayer. Присутствуют следующие классы:
- ClientSession - класс, отвечающий за работу с подключенным клиентом.
- HttpServer - класс, отвечающий за разворачивание сервер.
- JSONBuilder - класс, отвечающий за постройку json ответа.
Слой представления
Слой для взаимодействия с пользователем. Реализация находится в пакете GUI. Ниже будут представлены скриншоты интерфейса.
Стартовое окно системы:

Окно входа:

Меню системы:

Окно состава команды:

Окно замены:

Окно событий команды:

Окно помощника:

Внешний сервис
При обращении внешнего сервиса к программе по url получается следующий результат:
{"player":[1,"Имя",1970-01-01 03:00:00.123,"Страна","Goalkeeper"]}
Тестирование
Реализован пакет модульных тестов. Производится тестирование изменения здоровья игрока и изменения названия игры.
Комплексное тестирование системы производилось вручную.