逆引き


 

逆引き

データ操作

データ取得

配列、リスト、スタックのデータを順次とりだすIterator
木構造を処理するComposite
Interpreter

処理方法の変更

内容と表現方法を別クラスに分離するBuilder
どの処理パターンなのか事前に判断できないChain of Responsibility

インスタンス生成

生成

自動生成するFactory Method
簡単に生成するBuilder

制限

インスタンス数を制限するSingleton

インスタンス利用

インスタンスの保存

現在のインスタンスの状態を残す、あるいは別に利用するPrototype
ある時点のオブジェクト情報を残すMemento
履歴を残して同じ作業をするCommand

オブジェクト間

他のオブジェクトの状態変化を知るObserver
オブジェクト間の関連が複雑になりすぎるMediator
インターフェースなどの違う同機能のクラスを使うAdapter
オブジェクトの集合全体を処理するVisitor
どの処理パターンなのか事前に判断できないChain of Responsibility

ロジック変更

動的

使用する処理手順を、動的に丸ごと入れ替えるAbstract Factory
状態によって処理が分かれるState

設計変更

利用するアルゴリズムが変わる可能性があるFactory Method
実装の変更が考えられるBridge
アルゴリズムを簡単に交換できるようにしておきたいStrategy
既存のクラスに機能を追加していくDecorator
同じデータ構造に対して処理を取り替えるVisitor
内容と表現方法を別クラスに分離するBuilder

開発の容易さ

インターフェース

インターフェースなどの違う同機能のクラスを使うAdapter
オブジェクト間の関連が複雑すぎるMediator
APIなどの呼び出しが複雑なので簡単にするFaçade
一連の命令をひとつの新しい命令とするCommand

アルゴリズムの変更

利用するアルゴリズムが変わる可能性があるFactory Method
実装の変更が考えられるBridge
アルゴリズムを簡単に交換できるようにしておきたいStrategy
同じデータ構造に対して処理を取り替えるVisitor
内容と表現方法を別クラスに分離するBuilder
ロジックはほとんど同じだが少しずつ異なるクラスが多くあるTemplate Method
どの処理パターンなのか事前に判断できないChain of Responsibility

機能の変更

既存のクラスに機能を追加するDecorator

バージョン管理

バージョンの違う版を共存させるAdapter