コアJ2EEパターン - View Helperパターン
2008/07/15 23:48Update
View Helper(ビュー・ヘルパー)パターンは コアJ2EEパターン の一つ、WEBアプリケーションにおいて、ビジネスロジックをビューから分離する手法を提供します。
本文は「問題」、「解決策」、「戦略」、「メリット」などからView Helperパターンについて説明します。
デザイン不適切な動的なWebアプリケーションでは、プレゼンテーションロジック(画面表示)がビジネスロジックと混在します。例えば、JSPにたくさんのビジネスロジックコードを埋め込んだり、SERVLETのメソッドにHTMLコードとビジネスコードを混在したりします。
その結果、システムの柔軟性や再利用性、可保守性の欠如などの問題が考えられます。
<<図>>

※動的なWebアプリケーション:動的にデータベースからデータを取得して表示させる
A view contains formatting code, delegating its processing responsibilities to its helper classes, implemented as JavaBeans or custom tags. Helpers also store the view's intermediate data model and serve as business data adapters.
View Helperパターンを利用して、ビュー(JSPなど)からビジネスロジックを「ヘルパ(Helper)」と呼ばれるクラスに移動します。即ち、ビューにはプレゼンテーション用のコードしかを書かないようにします。ヘルパークラスの実装方法として、JavaBeanやカスタムタグなどがあります。また、役目として、ヘルパークラスは、ビューに利用されるデータモデルの収集、データを必要とされる形式に変換、ビジネスデータのアダプタとするなどの役割を担います。
<<図>>

ビュー(JSPなど)からビジネスロジックを排除します。
View:
ビュー。クライアントに表示情報を提供します。JSPやSERVLETなどが該当します。
Helper:
ビューのヘルパークラス。次のような役を担うことができます。
◇ ビューに利用されるデータを収集
◇ 収集されたデータを保持
◇ データを必要とされる形式に変換
◇ ビジネスデータのアダプタ
View Helperパターンを利用することで、次のメリットがあると考えられます。
◇ 役割の分離。
◇ システムのモジュール化。
View Helperパターンには多数の実装戦略があります。例えば、
JSP View Strategy
JSPはビューとする戦略
Servlet View Strategy
Servletはビューとする戦略
JavaBean Helper Strategy
ヘルパークラスをJavaBeanとして実装する戦略
Custom Tag Helper Strategy
ヘルパークラスをカスタムタグとして実装する戦略
Business Delegate as Helper Strategy
Business Delegateはヘルパーの役を担う戦略
Transformer Helper Strategy
ヘルパーをeXtensible Stylesheet Language Transformer(XSLT)という形で実装する戦略
Core J2EE Pattern Catalog 
Core J2EE Patterns - View Helper
問題
デザイン不適切な動的なWebアプリケーションでは、プレゼンテーションロジック(画面表示)がビジネスロジックと混在します。例えば、JSPにたくさんのビジネスロジックコードを埋め込んだり、SERVLETのメソッドにHTMLコードとビジネスコードを混在したりします。
その結果、システムの柔軟性や再利用性、可保守性の欠如などの問題が考えられます。
<<図>>
※動的なWebアプリケーション:動的にデータベースからデータを取得して表示させる
解決策
A view contains formatting code, delegating its processing responsibilities to its helper classes, implemented as JavaBeans or custom tags. Helpers also store the view's intermediate data model and serve as business data adapters.
View Helperパターンを利用して、ビュー(JSPなど)からビジネスロジックを「ヘルパ(Helper)」と呼ばれるクラスに移動します。即ち、ビューにはプレゼンテーション用のコードしかを書かないようにします。ヘルパークラスの実装方法として、JavaBeanやカスタムタグなどがあります。また、役目として、ヘルパークラスは、ビューに利用されるデータモデルの収集、データを必要とされる形式に変換、ビジネスデータのアダプタとするなどの役割を担います。
<<図>>
ビュー(JSPなど)からビジネスロジックを排除します。
View:
ビュー。クライアントに表示情報を提供します。JSPやSERVLETなどが該当します。
Helper:
ビューのヘルパークラス。次のような役を担うことができます。
◇ ビューに利用されるデータを収集
◇ 収集されたデータを保持
◇ データを必要とされる形式に変換
◇ ビジネスデータのアダプタ
メリット
View Helperパターンを利用することで、次のメリットがあると考えられます。
◇ 役割の分離。
◇ システムのモジュール化。
戦略
View Helperパターンには多数の実装戦略があります。例えば、
JSP View Strategy
JSPはビューとする戦略
Servlet View Strategy
Servletはビューとする戦略
JavaBean Helper Strategy
ヘルパークラスをJavaBeanとして実装する戦略
Custom Tag Helper Strategy
ヘルパークラスをカスタムタグとして実装する戦略
Business Delegate as Helper Strategy
Business Delegateはヘルパーの役を担う戦略
Transformer Helper Strategy
ヘルパーをeXtensible Stylesheet Language Transformer(XSLT)という形で実装する戦略
その他参考資料
Core J2EE Pattern Catalog 
Core J2EE Patterns - View Helper
Sponsored Link
- Relative Articles
- ASP.NETでのフロント・コントローラ(Front Controller)実装 - (2009/10/20 15:22)
- Factory Method パターン - ファクトリメソッドパターン - (2008/06/09 22:44)
- Abstract Factory パターン - 抽象ファクトリパターン - (2008/06/10 13:25)
- Singleton パターン - シングルトンパターン - (2008/06/10 15:36)
- Prototypeパターン - プロトタイプパターン - (2008/06/10 17:23)
- Builderパターン - ビルダーパターン - (2008/06/10 19:01)
- Adapter パターン - アダプターパターン - (2008/06/11 11:30)
- Composite パターン - コンポジットパターン - (2008/06/11 16:59)
- Interpreter パターン - インタプリタパターン - (2008/06/13 15:42)
- Chain of Responsibility パターン - 責任の連鎖パターン - (2008/06/14 00:28)