定義
コマンドパターンはリクエスト(=コマンド)をオブジェクトとしてカプセル化し、その結果、他のオブジェクトを異なるリクエスト、キュー、またはログリクエストでパラメータ化でき、アンドゥ可能な操作もサポートします。(全てはコマンド、、、になるので)
リクエスト=コマンド?
インボーカ=リモコンの一つのスロット?
重要ポイント
- Commandパターンは、リクエストを行う、オブジェクトとその実行を知っているオブジェクトを分離する
- コマンドオブジェクトがこの分離の中核であり、レシーバー(コマンドを受け取るとこ=LightOnCommandとか)をアクション(excuteとかまたは一連のアクション)でカプセル化します。
- インボーカ(=リモコン)はコマンドでパラメータ化することができ、実行時に動的にパラメータ化することさえできます。
- 実際にundo()を簡単にサポートできます。
- なぜならリモコンはコマンドオブジェクト型をもっているからです。
なんとなくわかりました!
最近のコメント