振る舞いに関するデザインパターン
振る舞いに関するデザインパターンは、 アルゴリズムやオブジェクト間の責任の分担に関するものです。
Chain of Responsibility
ハンドラーの連鎖に沿ってリクエストを渡すことができます。 各ハンドラーは、 リクエストを受け取ると、 リクエストを処理するか、 連鎖内の次のハンドラーに渡すかを決めます。
Command
リクエストを、 それに関するすべての情報を含む独立したオブジェクトに転換します。 この転換により、 リクエストをメソッドの引数として渡したり、 リクエストの実行を遅らせたり、 待ち行列に入れたり、 取り消し操作を行なうことが可能になります。
Iterator
リスト、 スタック、 ツリーなどの実際のデータ表現を表に出さずにコレクションの要素を探索することができます。
Mediator
オブジェクト間の混沌とした依存性を削減します。 パターンは、 オブジェクト間の直接の通信を制限し、 メディエーター・オブジェクトを介してのみの共同作業を強制します。
Memento
オブジェクトの以前の状態を保存し復元することを、 実装の詳細を明かさずに行います。
Observer
複数のオブジェクトが観察しているオブジェクトに何かイベントが発生した時にそのイベントについて観察しているオブジェクトへ通知を行うサブスクリプションの仕組みを定義することができます。
State
オブジェクトの内部状態が変化した時に、 その挙動を変化させます。 それは、 あたかもそのオブジェクトのクラスが変わったかのように見えます。
Strategy
アルゴリズムのファミリーを定義し、 それぞれのアルゴリズムを別個のクラスとし、 それらのオブジェクトを交換可能にします。
Template Method
スーパークラス内でアルゴリズムの骨格を定義しておき、 サブクラスは構造を変えることなくアルゴリズムの特定のステップを上書きします。
Visitor
アルゴリズムをその動作対象となるオブジェクトから切り離します。