gpt4 book ai didi

java - 应该如何设计以数据库为中心的 Java Swing 应用程序?

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:58 24 4
gpt4 key购买 nike

一段时间以来,我一直在编写以数据库为中心的 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

该应用程序有多个 View ,一些包含用于显示数据的 JTable,一些包含带有用于编辑或添加数据的表单的对话框。

我有一个带有 JDBC 连接的 DataAccessObject。我使用多个模型(扩展 AbstractTableModel)将 View (表单或表)与 DAO 连接起来。

在我的第一个版本中,我将 DAO 实现为单例,然后我了解到这是一种反模式并改用依赖注入(inject),所以我基本上先初始化 DAO,然后将其注入(inject)所有模型的构造函数。然后我初始化 JFrame 并在孔 GUI 树中的构造函数中注入(inject)对模型的引用。

通过孔GUI树传递对模型的引用感觉很笨拙,但我知道我很好地控制了依赖关系。但是,有没有更好的设计可以用于以数据库为中心的 Java Swing 应用程序,该应用程序具有许多数据 View ,需要一个连接到数据库的模型?

最佳答案

我也支持 Shakedown 的评论。这都是关于层次的。将您的代码分成多个层。

既然你在谈论依赖注入(inject),我建议你看一下 Spring Rich Client 框架,以了解如何设计/开发 Swing 应用程序。

关于java - 应该如何设计以数据库为中心的 Java Swing 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com