Section11: Java EEパターン
クラス構成
役割 | 説明 | |
---|---|---|
Model | データとビジネスロジック。 | |
View | Modelからのデータを表示する。JSPがViewに相当する。 | |
Controller | クライアントからの要求を受け付けModelとViewの制御を行う。サーブレットがControllerに相当する。 |
特徴・メリット
- 各コンポーネントの独立性を高めることで、変更時の影響を局所化する。
- 役割が明確になるので分担作業がしやすい。また、可読性も高まる。
- 正確にはJavaEEパターンではなく、より一般的なアーキテクチャパターンの一種。
クラス構成
役割 | 説明 | |
---|---|---|
FilterManager | Filterの管理を行う。 | |
FilterChain | 複数のFilterの連鎖を保持する。 | |
Filter | フィルタリング処理を実装したフィルタ。 | |
Target | Filterを適用するターゲット。 |
特徴・メリット
- 横断的な処理の実装をフィルタとして分離することで、フィルタの順番や処理内容などを柔軟に変更可能。
- ServletのFilter機構そのもの
クラス構成
役割 | 説明 | |
---|---|---|
Controller | 全てのリクエストを一元的に受け付ける。 |
特徴・メリット
- 全てのリクエストに対する共通的な処理を一箇所に集中できるため、保守性が上がる。
- StrutsのActionServletがこれに相当する。
クラス構成
役割 | 説明 | |
---|---|---|
BusinessDelegate | Clientからのビジネスロジック呼び出しを受け付け、BusinessServiceへ委譲する。 | |
LookupService | BusinessServiceのインスタンスをルックアップまたは生成する。ServiceLocatorパターンのServiceLocatorがここに使用されるのが一般的。 | |
BusinessService | ビジネスロジックの実装。 |
特徴・メリット
- BusinessServiceのルックアップ/生成手順やロジックの呼び出し方法をClientから隠蔽する。そのため、BusinessServiceの生成方法や呼び出し方に変更があってもBusinessDelegateで吸収することができるので、Clientを変更せずにすむ。
クラス構成
役割 | 説明 | |
---|---|---|
ServiceLocator | BusinessServiceのルックアップ/生成処理をClientから隠蔽し、BusinessServiceの容易な取得方法をClientへ提供する。一般的にシングルトンとして実装する。 | |
InitialContext | BusinessServiceのルックアップ/生成処理を行う入り口。 | |
ServiceFactory | 実際にBusinessServiceのルックアップ/生成処理を行うクラス。 | |
BusinessService | ビジネスロジックの実装。 |
特徴・メリット
- ビジネスサービスのルックアップ/生成処理の複雑さをClientから隠蔽する。
- ビジネスサービスをキャッシュすることでパフォーマンスを改善できる。
クラス構成
役割 | 説明 | |
---|---|---|
ValueObject | BusinessObject同士やClientとの間で受け渡した値をまとめて保持するオブジェクト。 | |
BusinessObject | ビジネスロジックを実装したクラスやデータアクセスオブジェクト(DAO)など。 |
特徴・メリット
- 複数のコンポーネント間でやりとりする値を1つにまとめ、1度に転送するため、EJBなどのリモート呼び出しを行っている場合、ネットワークトラフィックを軽減できる。