データベース中心のJavaスイングアプリケーションをどのように設計する必要がありますか?
-
01-10-2019 - |
質問
私はしばらくの間、データベース中心のJavaスイングアプリケーションを書いています。
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をシングルトンとして実装しました。その後、これがアンチパターンであることを知り、代わりに依存関係インジェクションを使用したため、基本的にDAOを最初に初期化してから、すべてのモデルのコンストラクターに注入しました。次に、JFrameを初期化し、ホールギャイリーのコンストラクターのモデルへの参照を注入します。
ホールGUIツリーを介してモデルへの参照を渡すことは非常に不器用に感じますが、私は依存関係をうまくコントロールしていることを知っています。しかし、データベース中心のJavaスイングアプリケーションに使用できるより良いデザインはありますか?
解決
Shakedownのコメントもサポートします。それはすべてレイヤーに関するものです。コードをレイヤー/層に分離します。
依存関係の注入について話していたので、Spring Rich Client Frameworkを見て、Swingアプリケーションをどのように設計/開発できるかについての感触を得ることをお勧めします。
所属していません StackOverflow