首页/开发/代码质量与评审速查/命令模式 Command(行为型)
设计原则与模式62 条

命令模式 Command(行为型)

把请求封装为对象:可排队、可记录、可撤销、可组合(宏命令);编辑器的撤销栈与任务队列是常见应用,命令对象只封装意图与数据。

意图请求对象化(参数化、排队、撤销)
组成Command 接口 + Receiver + Invoker + Client
应用撤销重做、事务脚本、任务队列

Java 示例

Java 示例
interface Command { void execute(); void undo(); }
class BoldCommand implements Command {
    public void execute() { doc.bold(); }
    public void undo() { doc.unbold(); }
}

易错点

  • undo 与 execute 不对称:状态回滚不完整
  • 命令对象持有业务逻辑:与接收者职责重叠

数据来源与参考

  • 《设计模式》(GoF)· Command
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌