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

414
04 февраля 2017, 08:18

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

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

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

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

Answer 1

Вы на верном пути. Разделение пакетов по обязанностям -- это правильно. Тот факт, что при этом будет какое-то место, которые вызывает код из нескольких пакетов -- неизбежен.

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

READ ALSO
Интерфейс не содержащий ни одного члена

Интерфейс не содержащий ни одного члена

Возможен ли интерфейс не содержащий ни одного члена и если да, какой практический смысл от такого интерфейса?

361
Java exit code -1073740791

Java exit code -1073740791

Столкнулся с проблемой, при компиляции приложения libgdx, приложение не открывает окно, а завершается с сообщением Process finished with exit code -1073740791 (0xC0000409)...

872
TelephonyDevController not yet created?

TelephonyDevController not yet created?

Здравствуйте, требуется помощь профессионала, так как эта задача чрезвычайно сложна

426
Как узнать установлен ли WhatsApp?

Как узнать установлен ли WhatsApp?

Как узнать установлен ли на телефоне WhatsApp не вызывая startActivity?

723