Cou氏の徒然日記(2022)

ほのぼの日記ブログです。

SJC-WC III

今日は、久々に試験対策。


J2EEパターンについて

① Model-View-Controller


Webアプリケーションの構築において基本となるアーキテクチャ

(1)Model
 画面に表示したいオブジェクト
 ServletやBeanが該当する。
(2)View
 その情報を管理するオブジェクト
 HTMLやJSPが該当する。
(3)Contoller
 ユーザからのリクエストに対してModelやViewを適切に制御するオブジェクト
 Servletが該当する。
 
クライアントからのリクエストはサーブレットが受け付け、適当なModelを生成する。
その後、Viewに制御を移す。
Viewは、画面に表示するために必要となるデータをModelから取得して、
クライアントに返す。


② Front Contoller


クライアントからのリクエストを局所化することで、ロジックの実行・Viewに対する振り分けの集中制御を行う。


ViweにアクセスするContollerを1つのサーブレットで局所化して実装することで、
クライアントからのリクエストを一元管理し、共通ロジックを用いることができる。


③ Intercepting Filter


リクエスト/レスポンスに適用する処理を、必要に応じて組み入れたりはずしたるする。


複数のターゲットに共通で必要となるフィルタリング処理を一元的に管理することができる。
管理されたフィルタリング処理はリクエストとレスポンスに対して透過的に適用することができ、それらの処理はコンポーネントとして独立させることができる。


④ Session Facade


クライアントアクセスの窓口をサーバー側に用意する。

サーバー側のサービス層で入り口となるオブジェクトを準備し、その中に一連のコンポーネントへの呼び出して続きをラッピングし、クライアントからのアクセスに対しては、単一のインタフェースを提供する。
クライアント側は内部で実行されている処理について知っている必要はない。

⑤ Business Delegate


クライアントがサービスを利用する際の手続きを代行する。

クライアントに対して、サービス層のオブジェクトが提供するインタフェースと同じインタフェースを提供することで、クライアントはサービス層のオブジェクトを直接利用しているように利用することができる。


⑥ Service Locator


クライアント層が必要とするサービスの検索を代行する。

アプリケーションで必要な全てのサービス検索処理を一元的に管理することで、クライアント層は複雑なサービス検索処理を行う必要がない。



[組み合わせ例]

ClientBusiness DelegateSession Facade
        ↓
       Service Locator


⑦ Data Transfer Object


エンティティオブジェクトに対するリモートメソッドの呼び出し回数を減らすことで、パフォーマンスを向上させる。