Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Структура классов в проекте java

#java #ооп #проектирование


В Desktop Swing приложении есть класс Item в пакете Data, класс ItemFrame (графическое
заполнение и редактирование класса Item) в пакете GUI и класс NetWorker в пакете NetDB
для работы с DB и сетью. Имена классов и пакетов - условные.

По логике программы, при создании (и редактировании) экземпляра класса Item вызывается
графический интерфейс ItemFrame в который заносятся данные, при нажатии кнопки "Сохранить"
создается объект Item, который должен быть записан в DB и, при определенных условиях,
должны вызываться методы для его передачи по сети и записи в XML.

Получается, что при нажатии кнопки вызывается конструктор Item из другого пакета,
и методы по работе с DB и сетью из третьего. Выглядит немного запутанно.
Как в таком случае правильно организовать структуру, в каком классе какие методы
лучше реализовать?

Интересует именно правильное решение с точки зрения ООП.
    


Ответы

Ответ 1



Вы на верном пути. Разделение пакетов по обязанностям -- это правильно. Тот факт, что при этом будет какое-то место, которые вызывает код из нескольких пакетов -- неизбежен. Возможно вам стоит придерживаться классической трехслойной архитектуры UI->BLL->DAL (стрелками обозначено направление взаимодействия). Первый и последний слои у вас уже есть, осталось ввести слой бизнес-логики. UI будет передавать ему данные (или уже заполненный Item), BLL будет создавать/брать переданный Item и образаться к NetDB для сохранения.

Комментариев нет:

Отправить комментарий