Как спроектировать приложение Java с базой данных Java?
-
01-10-2019 - |
Вопрос
Я пишу на некоторое время писать базы данных, ориентированного на приложение Java.
GUI и DAO-код заканчиваются в большом дереве, как:
JFrame
|
JTabbedPane
|
+--------------------+----------------------+-------------+
| | | |
JPanel1 JPanel2 JPanel3 JPanel4
| | | |
JButtons--JTable1 JTextFields--JButton JTable2 JDialog--JTable3
i! i! i! i!
Model1 Model2 Model3 Model4
| | | |
+------------+-----------+---------+-------------------+
|
DataAccessObject
Приложение имеет несколько представлений, некоторые содержат JTable для отображения данных, а некоторые содержат диалог с формой для редактирования или добавления данных.
у меня есть DataAccessObject
с JDBC-соединением. Я использую несколько моделей (продлен AbstractTableModel
) Чтобы подключить представления (формы или таблицы) с DAO.
В моей первой версии я реализовал DAO как Singleton, а затем узнал, что это анти-образное закономерность и использованная впрыска зависимости, поэтому я в основном инициализирую DAO сначала, а затем ввести его до конструктора всех моделей. Затем я инициализирую JFrame и ввести ссылку на модели в конструкторе в отверстии GUI-дерева.
Передача ссылки на модели через отверстие GUI чувствует себя очень неуклюжему, но я знаю, что у меня хороший контроль над зависимостями. Но есть ли лучший дизайн, который я мог бы использовать для базы данных, ориентированных на Java Swing Privents со многими взглядами на данные, которые нуждается в модели с подключением к базе данных?
Решение
Я бы также поддерживал комментарий Shakedown's. Это все о слоях. Отделите свой код на слои / ярусы.
Поскольку вы говорили о инъекции зависимостей, я бы предложил вам взглянуть на Wpen Whicle Client Clandure, чтобы почувствовать, как хорошие приложения для качания могут быть разработаны / разработаны.