如何设计以数据库为中心的Java Swing应用程序?
-
01-10-2019 - |
题
我已经写了一段时间以数据库为中心的Java Swing应用程序。
GUI和DAO代码最终进入了一棵大树,例如:
JFrame
|
JTabbedPane
|
+--------------------+----------------------+-------------+
| | | |
JPanel1 JPanel2 JPanel3 JPanel4
| | | |
JButtons--JTable1 JTextFields--JButton JTable2 JDialog--JTable3
i! i! i! i!
Model1 Model2 Model3 Model4
| | | |
+------------+-----------+---------+-------------------+
|
DataAccessObject
该应用程序具有多种视图,有些包含可显示数据的JT,有些包含一个带有用于编辑或添加数据的表单的对话框。
我有一个 DataAccessObject
与JDBC连接。我使用多个型号(扩展 AbstractTableModel
)将视图(表单或表格)与DAO连接。
在我的第一个版本中,我将DAO实现为单身人士,然后我了解到这是一种反模式,并且使用了依赖项注入,因此我基本上首先初始化DAO,然后将其注入所有模型的构造函数。然后,我初始化Jframe并在孔Gui-Tree中的构造函数中注入对模型的引用。
通过孔GUI树传递对模型的引用感觉很笨拙,但我知道我对依赖关系有很好的控制。但是,我可以为以数据库为中心的Java Swing应用程序使用更好的设计,并具有许多需要与数据库连接的模型的数据视图?
解决方案
我还将支持Shakedown的评论。这全都与层有关。将您的代码分为层/层。
由于您谈论的是依赖注入,我建议您看看春季富的客户框架,以了解如何设计/开发良好的摇摆应用程序。
不隶属于 StackOverflow