如何设计以数据库为中心的Java Swing应用程序?
我已经编写了一段时间以数据库为中心的JavaSwing应用程序
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,一些视图包含用于编辑或添加数据的带有表单的对话框
我有一个带有JDBC连接的DataAccessObject
。我使用几个模型(extendsAbstractTableModel
)将视图(表单或表)与DAO连接起来
在我的第一个版本中,我将DAO实现为一个单例,然后我了解到这是一个反模式,并使用依赖注入,因此我基本上先初始化DAO,然后将其注入所有模型的构造函数。然后初始化JFrame,并在HoleGUI树的构造函数中注入对模型的引用
通过整个GUI树传递对模型的引用感觉非常笨拙,但我知道我可以很好地控制依赖关系。但是,对于以数据库为中心的JavaSwing应用程序,有没有更好的设计可以用于需要连接到数据库的模型的许多数据视图
# 1 楼答案
我也支持Shakedown的评论。这都是关于层次的。将代码分为多个层
既然你在谈论依赖注入,我建议你看看Spring富客户机框架,了解如何设计/开发好Swing应用程序