Template Method Pattern
templateは。「文字の形に穴が開いている薄いプラスチック板」のこと。
その穴をペンでなぞれば、手書きでも綺麗な文字が書けるわけ。
ペンなのか、マジックなのか、鉛筆なのか、筆なのか。
仕上がりは違うけど同じ文字が書ける。
templateは、形を決定する枠組みを提供するだけ。
TemplateMethodパターンは、
テンプレートの機能を持つパターン。
スーパークラスで処理の枠組みを決め、
サブクラスでその具体的内容を実装する。
スーパークラスでは、
アルゴリズムの流れの中で利用される抽象的メソッドと、
この抽象的なメソッドを利用した処理のアルゴリズムを定義するTemplateMethodを定義する。
ref:
http://www.techscore.com/tech/DesignPattern/TemplateMethod.html
その穴をペンでなぞれば、手書きでも綺麗な文字が書けるわけ。
ペンなのか、マジックなのか、鉛筆なのか、筆なのか。
仕上がりは違うけど同じ文字が書ける。
templateは、形を決定する枠組みを提供するだけ。
TemplateMethodパターンは、
テンプレートの機能を持つパターン。
スーパークラスで処理の枠組みを決め、
サブクラスでその具体的内容を実装する。
スーパークラスでは、
アルゴリズムの流れの中で利用される抽象的メソッドと、
この抽象的なメソッドを利用した処理のアルゴリズムを定義するTemplateMethodを定義する。
ref:
http://www.techscore.com/tech/DesignPattern/TemplateMethod.html
Adapter Pattern
adapterは「適合させる」ゆう意味。
Adapterパターンは、
インタフェースに互換性のないクラス同士を組み合わせることが目的のパターン。
これまで利用していたメソッドAと同じ機能を、選りすぐれた形で提供するメソッドBを発見。が、
メソッドBは、メソッドAとは異なるインタフェースを実装しているため、
メソッドBを使用するには、あれこれ変更が必要。大変。
で、
メソッドAとメソッドBの違いを吸収するAdapterを準備。
少ない変更で新しいメソッドに乗り換えられる!
この目的のために
Adapterパターンは2つの方法を与えている。
一つは、継承する方法。もう一つは、委譲しちゃう方法。
ref:
http://www.techscore.com/tech/DesignPattern/Adapter.html
Adapterパターンは、
インタフェースに互換性のないクラス同士を組み合わせることが目的のパターン。
これまで利用していたメソッドAと同じ機能を、選りすぐれた形で提供するメソッドBを発見。が、
メソッドBは、メソッドAとは異なるインタフェースを実装しているため、
メソッドBを使用するには、あれこれ変更が必要。大変。
で、
メソッドAとメソッドBの違いを吸収するAdapterを準備。
少ない変更で新しいメソッドに乗り換えられる!
この目的のために
Adapterパターンは2つの方法を与えている。
一つは、継承する方法。もう一つは、委譲しちゃう方法。
ref:
http://www.techscore.com/tech/DesignPattern/Adapter.html
Iterator Pattern
「繰り返す」ゆう意味。
日本語で「反復子」
Iteratorパターンは
要素の集まりを保有するオブジェクトの各要素に順番にアクセスする方法を提供する為のパターン。
たとえば
集約オブジェクトとしてListクラスを想定する。
Listクラスは、要素としていくつかのオブジェクトを持てる。
このListオブジェクトが持つ要素に順番にアクセスするような場合、
そのような順番で各要素にアクセスするかによって、様々さ走査方法がある。
名前順だったり、パラメータを利用した順番だったり。
これら走査方法は、Listでは提供していない。
目的によっても異なるし、沢山あるから、Listには用意し切れない。
で、
走査方法を与えるクラスをListとは別に独立させておき、
必要な走査方法を与えるクラスをユーザが自分で作成する。
結果、より柔軟な設計ができる。
プラス、
集約オブジェクトのクラスが変更になっても、影響範囲を小さく出来る。
Iteratorパターンでは、
何らかの集約体が必ずAggregateインタフェースを実装するようにしてる。
Aggregateとは、
「集合」ゆう意味で、Aggregateインタフェースでは、
Iteratorインタフェースの実装クラスを返す、iterator()メソッドを定義してるだけ。
Interatorインタフェースは、
この集約体をメンバ変数として持ち、
この集約体に次の要素が存在するかしないかをbooleanで返すhasNext()メソッドと、
次の要素を返すnext()メソッドを定義している。
ref:
http://www.techscore.com/tech/DesignPattern/Iterator.html
日本語で「反復子」
Iteratorパターンは
要素の集まりを保有するオブジェクトの各要素に順番にアクセスする方法を提供する為のパターン。
たとえば
集約オブジェクトとしてListクラスを想定する。
Listクラスは、要素としていくつかのオブジェクトを持てる。
このListオブジェクトが持つ要素に順番にアクセスするような場合、
そのような順番で各要素にアクセスするかによって、様々さ走査方法がある。
名前順だったり、パラメータを利用した順番だったり。
これら走査方法は、Listでは提供していない。
目的によっても異なるし、沢山あるから、Listには用意し切れない。
で、
走査方法を与えるクラスをListとは別に独立させておき、
必要な走査方法を与えるクラスをユーザが自分で作成する。
結果、より柔軟な設計ができる。
プラス、
集約オブジェクトのクラスが変更になっても、影響範囲を小さく出来る。
Iteratorパターンでは、
何らかの集約体が必ずAggregateインタフェースを実装するようにしてる。
Aggregateとは、
「集合」ゆう意味で、Aggregateインタフェースでは、
Iteratorインタフェースの実装クラスを返す、iterator()メソッドを定義してるだけ。
Interatorインタフェースは、
この集約体をメンバ変数として持ち、
この集約体に次の要素が存在するかしないかをbooleanで返すhasNext()メソッドと、
次の要素を返すnext()メソッドを定義している。
ref:
http://www.techscore.com/tech/DesignPattern/Iterator.html
J2EEパターン
J2EEプラットフォームは多層システムから成る。
・client層:client application, etc.
・presentation層:receive the request from client.
・business層:business logic and kepping data.
・integration層:manage the connection of outer resource like db.
・resource層:outer system like database.
J2EEパターンもこの多層システムに基づいて構成されている。
・patterns of presentation phase
・Intercepting Filter Pattern
リクエストの前後処理を行う。
・Front Controller Pattern
リクエスト処理を集中して管理するためのコントローラを提供する。
・View Helper Patter
表示用の整形に関係ないロジックをヘルパコンポーネントにカプセル化する。
・Composite View Pattern
原始的なサブコンポーネントから構成されたビューを生成する。
・Service to Worker Pattern
ディスパッチャコンポーネントを使ってFrontControllerPatternとViewHelperPatternとを結合し、より多くの仕事をビューに処理させる。
・patterns of business phase
・Business Delegate Pattern
プレゼン層とビジネス層とを切り離し、サービスに対するファサードやプロキシの役割を持つインタフェースを提供する。
・Value Object Pattern
ネットワークのトラフィックを減らして、層と層の間のデータ交換を行う。
・Session Facade Pattern
ビジネスオブジェクトの複雑さを隠蔽するために、ワークフローの処理を一箇所に纏める。
・Composite Entity Pattern
依存関係にある複数の永続オブジェクトを1つのエンティティBeanに纏めて、粗粒度のエンティティBeanを設計する。
・Value Object Assembler Pattern
複数のデータソースから複合バリューオブジェクトを組み立てる。
・Value List Handler Pattern
問い合わせの実行と結果のキャッシュ、および結果の処理方法を管理する。
・Service Locator Pattern
複雑なビジネスサービスの検索や生成の処理をカプセル化し、ビジネスサービスのファクトリを検索する。
・patterns of integration phase
・Data Access Object Pattern
データソースを抽象化し、データに対する透過的なアクセスを提供する。
・Service Activator Pattern
EJBコンポーネントの非同期処理を行う。
ref:
http://www.techscore.com/tech/J2EEPattern/introduction2.html
・client層:client application, etc.
・presentation層:receive the request from client.
・business層:business logic and kepping data.
・integration層:manage the connection of outer resource like db.
・resource層:outer system like database.
J2EEパターンもこの多層システムに基づいて構成されている。
・patterns of presentation phase
・Intercepting Filter Pattern
リクエストの前後処理を行う。
・Front Controller Pattern
リクエスト処理を集中して管理するためのコントローラを提供する。
・View Helper Patter
表示用の整形に関係ないロジックをヘルパコンポーネントにカプセル化する。
・Composite View Pattern
原始的なサブコンポーネントから構成されたビューを生成する。
・Service to Worker Pattern
ディスパッチャコンポーネントを使ってFrontControllerPatternとViewHelperPatternとを結合し、より多くの仕事をビューに処理させる。
・patterns of business phase
・Business Delegate Pattern
プレゼン層とビジネス層とを切り離し、サービスに対するファサードやプロキシの役割を持つインタフェースを提供する。
・Value Object Pattern
ネットワークのトラフィックを減らして、層と層の間のデータ交換を行う。
・Session Facade Pattern
ビジネスオブジェクトの複雑さを隠蔽するために、ワークフローの処理を一箇所に纏める。
・Composite Entity Pattern
依存関係にある複数の永続オブジェクトを1つのエンティティBeanに纏めて、粗粒度のエンティティBeanを設計する。
・Value Object Assembler Pattern
複数のデータソースから複合バリューオブジェクトを組み立てる。
・Value List Handler Pattern
問い合わせの実行と結果のキャッシュ、および結果の処理方法を管理する。
・Service Locator Pattern
複雑なビジネスサービスの検索や生成の処理をカプセル化し、ビジネスサービスのファクトリを検索する。
・patterns of integration phase
・Data Access Object Pattern
データソースを抽象化し、データに対する透過的なアクセスを提供する。
・Service Activator Pattern
EJBコンポーネントの非同期処理を行う。
ref:
http://www.techscore.com/tech/J2EEPattern/introduction2.html
The GoF's 23 Design Patterns
■デザインパターン
様々なプログラムで再利用できる汎用的な設計パターンのこと。
■ゴフデザインパターン
GoF(The Gang Of Four) Design Pattern
GoFが考えたオブジェクト指向プログラミングに役立つ23つデザインパターン
ref:GoF, "Design Patterns : Elements of Reusable Object Oriented Software", 1995
(オブジェクト指向における再利用のためのデザインパターン)
■The GoF's 23 Design Patterns
□生成
−FactoryMethod
−AbstractFactory
−Builder
−Prototype
−Singleton
□構造
−Adapter
−Bridge
−Composite
−Decorator
−Facade
−Flyweight
−Proxy
−TemplateMethod
□振舞
−Interpreter
−Chain of Responsibility
−Command
−Iterator
−Mediator
−Memento
−Observer
−State
−Strategy
−Visitor
■Various Design Patterns and Idioms
□生成
−Monostate
□構造
−GenerationGap
−RoleObject
□振舞
−TypedMessage
−HierarchicalVisitor
−ComponentBus
−CacheManager
−ObjectPool
□平行性
−DoubleCheckedLocking
ref:
http://itpro.nikkeibp.co.jp/article/COLUMN/20051123/225074/
http://www002.upp.so-net.ne.jp/ys_oota/mdp/
様々なプログラムで再利用できる汎用的な設計パターンのこと。
■ゴフデザインパターン
GoF(The Gang Of Four) Design Pattern
GoFが考えたオブジェクト指向プログラミングに役立つ23つデザインパターン
ref:GoF, "Design Patterns : Elements of Reusable Object Oriented Software", 1995
(オブジェクト指向における再利用のためのデザインパターン)
■The GoF's 23 Design Patterns
□生成
−FactoryMethod
−AbstractFactory
−Builder
−Prototype
−Singleton
□構造
−Adapter
−Bridge
−Composite
−Decorator
−Facade
−Flyweight
−Proxy
−TemplateMethod
□振舞
−Interpreter
−Chain of Responsibility
−Command
−Iterator
−Mediator
−Memento
−Observer
−State
−Strategy
−Visitor
■Various Design Patterns and Idioms
□生成
−Monostate
□構造
−GenerationGap
−RoleObject
□振舞
−TypedMessage
−HierarchicalVisitor
−ComponentBus
−CacheManager
−ObjectPool
□平行性
−DoubleCheckedLocking
ref:
http://itpro.nikkeibp.co.jp/article/COLUMN/20051123/225074/
http://www002.upp.so-net.ne.jp/ys_oota/mdp/
