1

私は、会社の会計ソフトウェアと電子商取引システム (インターネット ショップ) の間でデータを交換および同期するための GUI アプリケーションをコーディングしています。

MVC (Model-View-Controller) デザイン パターンを使用して作成したいと考えています。

私のアプリケーションの一部は、電子商取引の在庫残高を会計ソフトからこれで上書きする機能です。

私が持っている

  1. 表示 - 上書きの進行状況を示す JDialog。
  2. コントローラー - データベースとビューの間の相互作用を担当
  3. モデル - データベースとアプリの設定からのデータ

データベースをキューに入れるとき、例外 (ClassNotFound および SQL) をキャッチする必要があります。

try {} catch {} ブロックはどこに作成すればよいですか? ビューで?またはコントローラーで?
JOptionPane にエラー メッセージを表示し、アプリケーションの状態を終了したいと考えています。

4

2 に答える 2

3

チェックされた例外のみについて言及しました。

  1. 例外をキャッチする必要はありません。代わりに宣言することを選択できます。
  2. 宣言したくない場合は、 でラップできRuntimeExceptionます。
  3. モデルからのすべての例外は、コード内の 1 つの場所 (いわゆる例外バリア) で処理し、統一された方法でコントローラーに提示する必要があります。Controller の主な関心事は、操作が成功したか失敗したかであり、失敗した理由の楽しい詳細には関心がありません。
  4. 宣言型トランザクション、接続プーリングなどに Spring などを使用せずに DAO レイヤー (DB 通信用) を作成することはお勧めしません。
于 2012-07-16T10:31:44.773 に答える
2

これはトリッキーな質問であり、コードをどのように構築するかにかかっています。通常、可能であれば、ビューが処理できるようにモデルに例外をスローさせます。これにより、モデルがビューから切り離されます。

この種のことが不可能な場合 (JTables や JLists の使用など) があります。このような状況では、可能であれば、「モデル データ」を個別にロードし (エラーを処理して)、それをコントロール (JTable/JList) モデルに渡します。

しかし、繰り返しになりますが、標準モデル (テーブル モデルなど) を使用していて、別のモデル (結果セットなど (例のみ) など) からデータを読み取る状況に遭遇する可能性があります。改善されたかどうかに関係なく) 例外を処理しようとするタスクがモデルに表示されます。

この場合、UI にエラーを報告できる何らかのエラー ハンドラ/リスナーをモデルに提供することをお勧めします。可能であれば、インターフェイスを使用すると、必要に応じてビュー/モデルを分離できます。

いくつかのアイデア

于 2012-07-16T10:39:00.320 に答える