
you are here
233
6
章
Command
パターン
デザインツールボックスの
ためのツール
ツールボックスがだいぶ重くなってきました!
この
6
章で
は、メソッドをコマンドオブジェクトにカプセル化し、保存
し、オブジェクトに渡し、必要なときに呼び出せるパターン
が追加されました。
■
Command
パターンは、リク
エストを行うオブジェクトと
その実行方法を知っているオ
ブジェクトを分離する。
■
この分離で中心となるのはコ
マンドオブジェクト。レシーバ
をアクション(または一連の
アクション)でカプセル化する。
■
インボーカは、コマンドオブ
ジ ェ クトの
execute()
メ ソ ッ
ドを呼び出してリクエストを
実行する。
execute()
メソッ
ドはレシーバのアクションを
起動する。
■
インボーカはコマンドでパラ
メータ化でき、実行時に動的
にパラメータ化することもで
きる。
■
オブジェクトを最後に
execute()
メソッドが呼び出された前の状
態に戻すアンドゥメソッドを実装
すれば、コマンドでアンドゥをサ
ポートできる。
■
Command
パターンの簡単
な拡張であるマクロコマンド
は、複数のコマンドを起動で
きる。同様に、マクロコマンド
は
undo()
を簡単にサポートで
きる。
■
実際には、「賢い」コマンドオ
ブジェクトがレシーバに委譲
しないでリクエスト自体を実
装することも珍しいことでは
ない。
■
コマンドを使って、ログ記録
やトランザクション型システム
を実装することもできる。