我已经写了一段时间以数据库为中心的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的评论。这全都与层有关。将您的代码分为层/层。

由于您谈论的是依赖注入,我建议您看看春季富的客户框架,以了解如何设计/开发良好的摇摆应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top