Сервисный слой и Слой представления - PavelKushnar/Software_Architecture_Design GitHub Wiki
Для проектирования сервисного слоя был использован шаблон проектирования Facade. Он позволяет преобразовывать объекты к отображаемому виду и обратно.
Для каждого объекта бизнес логики был реализован свой класс Facade
. Все объекты-фасады хранятся в пакете facade
. Методы каждого объекта-фасада строились исходя из нужд слоя представления. Таким образом, в слое представления осталось минимальное количество логики. В слое представления, условные операторы используются, в основном, только для реализации логики взаимодействия между объектами представления
После проведения небольшого, недокументированного аналитического сравнения систем, используемых для создания графического интерфейс на языке Java, было принято решение использовать библиотеку JavaFX
.
К ее преимуществам относится следующее:
- простота использования для реализации GUI;
- построение структуры в виде MVC паттерна;
- Относительная новизна;
- позиционирование библиотеки в качестве замены swing
- наличие графического дизайнера
Упомянутый выше паттерн MVC реализуется в JavaFX
следующим образом:
- Controler - объект
Controller
, позволяющий работать с графическими компонентами (а главное с представляемыми данными) - View - представление графических объектов, их характеристик и расположения с помощью языка разметки fxml. Также есть возможность добавления CSS файлов.
- Mode - никак не оговаривается в контексте библиотеки.
В данной реализации представлена в виде паттерна facade
Всего в проекте было создано 9 окон, для каждого из которых были реализованы объекты MVC Объекты типа Model (facade) хранятся в пакете facade
.
Объекты Controller
в пакете Controller
. Объекты View
в пакете View
.
Cкриншоты пользовательского интерфейса представлены в разделе комплексного тестирования.