コアJ2EEパターン - Composite View(複合ビュー)パターン
2008/08/05 00:04Update
Composite View(複合ビュー)パターンは コアJ2EEパターン の一つで、複雑な構成を持つ画面に対して、複数の断片(サブビュー)に分割し、それぞれの断片を原始的なビュー部品として、動的に一つのページに構成する手法を提供します。
本文は「問題」、「解決策」、「戦略」、「メリット」などからComposite Viewパターンについて説明します。
多くのWEBアプリケーションでは、すべてのページ対しても例えばヘッダ(ナビゲーション、メニューなど)、フッタなどの変わらない部分を持つことが一般的です。
デザイン不適切なアプリケーションでは、こうした「変わらない部分」を各WEBページに分散してしまい、その結果:
◇ 重複コードの発生。全く同じである「変わらない部分」のコードを各ページに重複して記述しなければなりません。
◇ 保守・拡張しにくい。例えば一つを修正しても、すべてのページへの修正を加えなければなりません。
Use composite views that are composed of multiple atomic subviews. Each component of the template may be included dynamically into the whole and the layout of the page may be managed independently of the content.
複数の原子的なサブビューから構成された複合ビューを使用します。各サブビューは、一つのページに動的に含まれ、また、ページレイアウトはコンテンツと別に管理します。
<<図1>>

例えば、ページはヘッダ(Header)、左(Left)、メインコンテンツ(Contents)、右(Right)、フッタ(Footer)に構成される場合、各部分はサブビューとして動的に一つのページに構成することができます。
<<構造図>>

◇ 複合ビュー(CompositeView)、及びサブビュー(HeaderView、FooterViewなど)が同一親クラスを共有することができます。
◇ 複合ビュー(CompositeView)は各サブビューによって構成されます。
◇ 実際の実装では、ViewManager(ビューマネージャ)を利用して各ビューを管理すると便利です。ちなみに、JSPの<jsp:include>タグがビューマネージャに該当します。
JSP View Strategy
JSPはビューとする戦略
Servlet View Strategy
Servletはビューとする戦略
JavaBean View Management Strategy
JavaBeanを利用してビューを管理する戦略
Standard Tag View Management Strategy
標準タグ(<%@ include %>と<jsp:include>タグ)を利用してビューを管理する戦略
Custom Tag View Management Strategy
カスタムタグを利用してビューを管理する戦略。例えば、JSFの<f:subview />タグ、Tilesフレームワークのタグなど
Transformer View Management Strategy
XSL Transformerを利用してビュー管理する戦略
など
Core J2EE Pattern Catalog 
Core J2EE Patterns - View Helper
問題
多くのWEBアプリケーションでは、すべてのページ対しても例えばヘッダ(ナビゲーション、メニューなど)、フッタなどの変わらない部分を持つことが一般的です。
デザイン不適切なアプリケーションでは、こうした「変わらない部分」を各WEBページに分散してしまい、その結果:
◇ 重複コードの発生。全く同じである「変わらない部分」のコードを各ページに重複して記述しなければなりません。
◇ 保守・拡張しにくい。例えば一つを修正しても、すべてのページへの修正を加えなければなりません。
解決策
Use composite views that are composed of multiple atomic subviews. Each component of the template may be included dynamically into the whole and the layout of the page may be managed independently of the content.
複数の原子的なサブビューから構成された複合ビューを使用します。各サブビューは、一つのページに動的に含まれ、また、ページレイアウトはコンテンツと別に管理します。
<<図1>>
例えば、ページはヘッダ(Header)、左(Left)、メインコンテンツ(Contents)、右(Right)、フッタ(Footer)に構成される場合、各部分はサブビューとして動的に一つのページに構成することができます。
<<構造図>>
◇ 複合ビュー(CompositeView)、及びサブビュー(HeaderView、FooterViewなど)が同一親クラスを共有することができます。
◇ 複合ビュー(CompositeView)は各サブビューによって構成されます。
◇ 実際の実装では、ViewManager(ビューマネージャ)を利用して各ビューを管理すると便利です。ちなみに、JSPの<jsp:include>タグがビューマネージャに該当します。
戦略
JSP View Strategy
JSPはビューとする戦略
Servlet View Strategy
Servletはビューとする戦略
JavaBean View Management Strategy
JavaBeanを利用してビューを管理する戦略
Standard Tag View Management Strategy
標準タグ(<%@ include %>と<jsp:include>タグ)を利用してビューを管理する戦略
Custom Tag View Management Strategy
カスタムタグを利用してビューを管理する戦略。例えば、JSFの<f:subview />タグ、Tilesフレームワークのタグなど
Transformer View Management Strategy
XSL Transformerを利用してビュー管理する戦略
など
その他参考資料
Core J2EE Pattern Catalog 
Core J2EE Patterns - View Helper
Sponsored Link
- Relative Articles
- Composite パターン - コンポジットパターン - (2008/06/11 16:59)
- コアJ2EEパターン - Front Controllerパターン - (2008/06/27 23:44)
- コアJ2EEパターン - Intercepting Filterパターン - (2008/06/29 23:07)
- コアJ2EEパターン - Data Access Objectパターン - (2008/07/13 21:34)
- コアJ2EEパターン - Session Facadeパターン - (2008/07/09 23:49)
- コアJ2EEパターン - Business Delegateパターン - (2008/07/11 00:57)
- コアJ2EEパターン - View Helperパターン - (2008/07/15 23:48)
- コアJ2EEパターン - Dispatcher Viewパターン - (2008/07/27 21:25)
- コアJ2EEパターン - Service to Workerパターン - (2008/07/27 22:26)