5. Архитектурные шаблоны - marejada/FootballClub GitHub Wiki
Проектирование слоя Бизнес Логики.
Для реализации слоя Бизнес Логики мною был выбран паттерн Модель предметной области.
При использовании модели предметной области система представляется состоящей из совокупности связанных между собой обьектов. Объекты представляют методы другим объектам и создаются во время исполнения программы на основе определения классов обьектов. Объекты скрывают информацию о представлении состояний и, следовательно, ограничивают к ним доступ.
Данный паттерн обладает следующими преимуществами:
- упрощается процесс модификации системы: можно изменять реализацию того или иного объекта, не воздействуя на другие объекты
- обьектно - ориентированная система проще в понимании и модернизации
- данная система удобна для групповой разработки: работу по реализации системы легко разделить между разработчиками потенциально все объекты являются повторно используемыми компонентами, так как они независимо инкапсулируют данные о состоянии и операции
- архитектуру системы можно разрабатывать на базе обьектов (структур обьектов) уже созданных в предыдущих проектах.
Следует учитывать следующую особенность паттерна:
при использовании сервисов объекты должны явно ссылаться на имена других обьектов и знать их интерфейс (это необходимо учесть если при изменении системы требуется изменить интерфейс).
Диаграмма классов реализованного слоя Бизнес Логики выглядит следующим образом:

Проектирование слоя источников данных
Для проектирования слоя источников данных был выбран паттерн Преобразователь данных.
Типовое решение преобразователь данных представляет собой слой программного обеспечения, которое определяет объекты, расположенные в оперативной памяти, от базы данных. В функции преобразователя данных входит передача данных между объектами и базой данных и изоляция их друг от друга. Благодаря использованию этого типового решения объекты, расположенные в оперативной памяти, могут даже "не подозревать" о самом факте присутствия базы данных. Им не нужен SQL-интерфейс и тем более схема базы данных. (В свою очередь, схема базы данных никогда "не знает" об объектах, которые ее используют.) Более того, преобразователь данных полностью скрыт от уровня домена.
Для данного слоя данных выбрана именно эта модель, в связи с тем, что схема базы данных и объектная модель могли изменяться независимо друг от друга. Подобная необходимость может возникать при использовании модели предметной области.
Сервисный слой
Сервисный слой изолирует бизнес-логику приложения от его представления. Для слоя бизнес-логики данный слой фактически перенаправляет все запросы в слой бизнес-логики. Помимо этого в сервисном слое осуществляется предварительная проверка корректности введенных данных.
Слой представления
Представление реализовано в виде настольного приложения с использованием библиотеки java.swing.
Для работы с внешним сервисом запущен веб-сервер, позволяющий получать информацию о матче по запросу вида: localhost:9999/[player_id]
Доступ из нашего приложения к внешней информации осуществляется через ответ формата json с данными о игроке команды, которые считываются с базы данных.
Диаграмма классов проекта
