対話型エンタープライズ・アプリケーションのJ2EEアーキテクチャ・デザイン・パターンは、Model-View-Controller(MVC)と呼ばれています。MVCパターンは、分散アプリケーション・ロジックを複雑なユーザー・インタフェースと結合するようなアプリケーションに適しています。MVCパターンに基づいてアプリケーションを開発する場合、目標はアプリケーション・ロジックとユーザー・インタフェースを分離、つまりパーティション化することです。
ほとんどの一般用語では、モデルは基礎となる論理的な表現、ビューは視覚的な表現であり、コントローラはユーザー入力の方法を指定するものです。データ・モデルが変化すると、依存するすべてのビューに通知されます。この状態と表現の分離により、エンタープライズ・アプリケーションの実装には次のような特性があります。
同じモデルに基づく複数のビューを作成できます。たとえば、同じデータを表形式とグラフ形式の両方で表示できます。データ・モデルが更新されると、モデルは両方のビューに通知し、それぞれが更新されるようにします。
モデルが指定するのは表示形式のみのため、基礎となるモデルに影響を与えずにビューを変更または作成できます。
ビューはコントローラを使用して、レスポンス・メカニズムを指定します。たとえば、コントローラは、キーボードの入力を受け取ったときに実行するアクションを決定します。これを実行するには、2つのレイヤー間で情報を受け渡す追加オブジェクトが必要ですが、実行する価値があります。各層でアプリケーション・レイヤーを適切に分類することで、開発チームはロールと職責を簡単に分割できます。
次の表に示すように、JDeveloperでは、設計時にモデル、ビューおよびコントローラ間の結合が確立されるため、統合作業が最小限に抑えられます。
レイヤー |
ブラウザベースのWebアプリケーション |
Javaクライアント・アプリケーション |
---|---|---|
モデル・レイヤー |
Webアプリケーションでは、モデル・レイヤーのインスタンスはJSFマネージドBeanまたはStrutsアクション・クラスによって作成されます。 |
Javaクライアント・アプリケーションでは、モデル・レイヤーのインスタンスはパネルの初期化時にJavaコードで作成されます。 |
ビュー・レイヤー |
HTML、JavaServer Faces(またはStruts)およびJSTLは、JSP Webアプリケーションのビュー・レイヤーを構成します。 |
標準のSwing UIコンポーネントは、Javaクライアント・グラフィカル・ユーザー・インタフェースのビュー・レイヤーを構成します。 |
コントローラ・レイヤー |
ビュー・レイヤーからモデル・レイヤー内の適切なアクション・クラスに受信リクエストをディスパッチする、JSFアクション・サーブレット。 |
標準のSwing UIコンポーネントは、Javaクライアントのコントローラ・レイヤーのロールを実行します。 |
Copyright © 1997, 2007, Oracle. All rights reserved.