読者です 読者をやめる 読者になる 読者になる

プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

22.Command 命令をクラスにする

命令を表すクラスのインスタンスという1個の「もの」として表現
履歴やマクロはそのインスタンスの集合。
CommandはEventと呼ばれることもある。

f:id:p-monster:20121218195957p:plain

Command・・・命令のAPI
ConcreteCommand・・・Command実装
Receiver・・・命令の実行対象。命令を受けてアクションを行う
Client・・・ConcreteCommandを生成し、Receiverを割り当てる。
Invoker・・・命令の実行開始。CommandのAPIを呼び出す。

命令が持つべき情報は?・・・目的によって異なる。

関連しているパターン

Composite・・・マクロを実現するためにCompositeパターンが使われる場合がある
Memento・・・履歴にMementoパターンが使われる場合がある
Prototype・・・作成したイベントの複製にPrototypeが使われる場合がある

参考:

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門