Я делаю бэкенд для своего настольного Java-приложения.Это приложение для управления вашим домашним бюджетом использует базу данных H2.Я все еще учусь составлять архитектуру программы, и это мой первый большой проект.Я буду создавать представление в будущем при изучении JavaFX, но на этом этапе я совершенно запутался в отношении связи между контроллером представления и уровнем обслуживания.У меня есть вопрос об использовании архитектуры слоя.У меня есть несколько уровней: - контроллер, - сервис (поддержка логики), - картографы, операторы и т. Д.
Как я знаю, контроллер должен взаимодействовать с сервисным уровнем с помощью DTO (объекта передачи данных).
При прохождении через уровень обслуживания наш DTO-объект будет отображаться в точный объект, используемый CRUD (для отправки в БД).Это сохранит все внутренности внутри ядра.
Здесь у меня есть небольшая проблема.В каком слое должен быть создан DTO?Допустим, мы переходим к приложению:
Вид -> Контроллер -> Сервис -> ...
Согласно моим сведениям, DTO должен использоваться между Контроллером и Сервисным уровнем.Таким образом, View может создавать объекты DTO для контроллера?Это проблема, потому что на этом уровне у меня нет никакой проверки ввода, и приложение может сломаться (например, взять «a» как int).Одной из идей было создание DTO через статический метод, который сохранял бы проверку данных и: возвращал новый объект DTO ИЛИ возвращал null, если проверка не удалась.
Я пытался быть настолько простым, насколько это возможно.Заранее благодарю за любые ответы и поддержку.