我一直在寫一個以數據庫爲中心的Java Swing應用程序。如何設計以數據庫爲中心的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
應用程序有一些看法,一些包含一個JTable用於顯示數據,以及一些包含用於編輯或形式的對話添加數據。
我有一個DataAccessObject
與JDBC連接。我使用多個模型(擴展AbstractTableModel
)將視圖(表單或表格)與DAO連接起來。
在我的第一個版本中,我將DAO實現爲一個Singleton,然後我得知這是一個反模式,並且使用了依賴注入,所以我基本上初始化DAO,然後將其注入到所有模型的構造函數中。然後,我初始化JFrame並在孔GUI樹中的構造函數中注入對模型的引用。
通過洞GUI樹傳遞參考模型感覺非常笨拙,但我知道我有很好的控制依賴關係。但是,有沒有更好的設計可以用於以數據庫爲中心的Java Swing應用程序,以及需要與數據庫連接的模型的許多數據視圖?
您將需要將您的視圖與數據分開。事實上,我建議您忘記GUI,改爲建立一個管理數據庫並提供您所需的服務和功能的系統。一旦你有了,你可以使用Swing來構建一個GUI,它現在將使用你的新系統。這一切都是關於抽象層的...... – 2010-09-08 22:56:49
確實如此.... + 1從我身上。 – duffymo 2010-09-08 23:04:34
@Shakedown:這不就是我用我的設計所做的,只有訪問DAO的模型?或者你有什麼意思? – Jonas 2010-09-09 13:36:31