私はしばらくの間、データベース中心の 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 に接続するために、いくつかのモデル (extends ) を使用します。
私の最初のバージョンでは、DAO をシングルトンとして実装しましたが、これがアンチパターンであり、代わりに依存性注入を使用したことを知りました。そのため、基本的には最初に DAO を初期化してから、すべてのモデルのコンストラクターに注入します。次に、JFrame を初期化し、モデルへの参照をホール GUI ツリーのコンストラクターに挿入します。
穴の GUI ツリーを介してモデルへの参照を渡すのは非常にぎこちなく感じますが、依存関係を適切に制御できることはわかっています。しかし、データベースへの接続を備えたモデルを必要とするデータの多くのビューを持つデータベース中心の Java Swing アプリケーションに使用できる、より良い設計はありますか?