データベース中心のJavaスイングアプリケーションをどのように設計する必要がありますか?

StackOverflow https://stackoverflow.com/questions/3672002

質問

私はしばらくの間、データベース中心の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アプリケーションをどのように設計/開発できるかについての感触を得ることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top