7

MVC パターンを完全に無視したことに気付いた後、Swing ビューを使用してアプリケーションでこの概念を利用しようとしました。私は今、Swing を使用した MVC に関するほとんどの投稿を読みましたが、理解するには複雑すぎるため、まだ少し混乱しています。道。

また、実際のプロジェクトで MVC を使用することがどれほど一般的かということについても疑問に思います。XSTL: のビジネス ロジック機能に戸惑いましたが、多くのオンライン チュートリアルでは、コントローラーを省略してモデルと混ぜ合わせているようです。JSP ビューからデータソースをアドレス指定する必要があるのはなぜですか?

これらの考えはさておき、私の適切な質問は次のとおりです。

Swing コンポーネントがある場合、その Swing クラスのイベント リスナは、POJO コントローラ クラスのメソッドを呼び出して (おそらく静的?) コンポーネントの状態を更新する必要があります。これにより、POJO によって構成されるモデルから適切なビジネス ロジックが取得されます。クラス階層と関連する持続性?

4

2 に答える 2

10

私は長い間フリーランスとして働いてきましたが、プロジェクトのほぼ 90% は Java Swing (デスクトップ アプリケーション) に関するものでした。また、多くのプロジェクトで Visual Fox Pro などの言語から Java への移行が行われましたが、大変でした。難しいのは、既に完了しているロジックを考えないことです。難しいのは、ごちゃごちゃしたコードを取得してそれを変更することです。そのため、モデル、ビュー、コントローラーの概念に従ってコードを分離する方法を頭の中でスキーマまたはマップを作成することをお勧めします。

前述のように、MVC は、見栄えがよく、保守しやすく、読みやすいコードを作成するのに役立ち、プログラミング パラダイムと優れた実践に従うことができます。

ビュー: 明らかに、ユーザー (ユーザー インターフェイス) とやり取りする部分です。Swing の場合は、ウィンドウ、フレーム、パネル、およびアプリに必要なグラフィック コンポーネントを含むすべてのコードです。

コントローラー: アプリケーション用に確立するコアまたはビジネス ロジックを含みます。この「レイヤー」には、機能と「アプリケーションが目標を達成する方法」を含める必要があります。

モデル: 管理するデータに関連します。たとえば、管理またはメンテナンスするデータを表すエンティティやクラスです。

MVC を適用することはそれほど難しくありませんが、前述したように、適用されない MVC 構造から MVC 構造化アプリケーションにコードを移行する必要がある場合は、面倒な場合があります。MVC を使用してコーディングを開始する方が簡単です。

私がそれに慣れる方法は、maven を使用してアプリケーションを小さな「モジュール」に分割することです。もちろん、maven は必要ありません。その瞬間に便利だと思いましたが、いずれにせよ、練習してみるか、取得することができますアプリケーションを小さなプロジェクトに分割することで MVC に使用されます。たとえば、次のようになります。

Java プロジェクト 1: application-data-model (データ管理に関連するすべてのコードを含む: エンティティ、dtos、bean、daos)

Java Project 2: application-core-controller (すべてのビジネス ロジックと機能が含まれています。ビューに関連付ける際にコードをより「透過的」にしたい場合は、ここでファサード パターンを使用できます)

Java プロジェクト 3: application-view-ui (すべてのパネル、フレーム、およびグラフィック コンポーネントを含む)

このように作業することで、自分のコードを分離し、自分が取り組んでいるプロジェクトにとって本当に重要なことに目を向けることに慣れるのに役立ちました (そして強制されました)。たとえば、私が application-data-model を使用している場合、私はデータ モデルに焦点を当てています。ビジネス ロジックやグラフィック インターフェイスについては考えていません。

長い説明です。誰かがもっとうまくできるかもしれませんが、私があなたを助けることができたか、少なくともこれで手を貸せたことを願っています.

よろしくお願いします。

于 2013-05-06T13:36:59.597 に答える
3

MVC の基本を理解するための URL を先に示します

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93コントローラ

次に、Swing アプリケーションに実装する方法です。コントローラー機能とリスナー機能を混同しないでください。

  1. それらにアタッチされた UI コントロールとリスナーは、ビュー クラスで定義する必要があります。
  2. どのイベントでも、ビジネス ロジックを呼び出す必要があるときはいつでも、コントローラー クラスを呼び出す必要があります。データベースから何らかの値をフェッチするようなものです。
  3. コントローラ クラスは、モデルと通信してデータを取得し、必要に応じて操作する必要があります。
  4. モデル クラスはデータに対して機能する必要があります。

MVC を使用する目的は、冗長なコードを削減し、コードをより管理しやすくすることです。したがって、計算/操作を行っている場合は、それらをコントローラーに移動できます。コントローラーは、同じものを必要とするさまざまなビューから呼び出すことができます。同様に、モデルを複数のコントローラで使用してデータを取得できます。

于 2013-05-06T12:07:27.987 に答える