Skip to content

命令模式(Command Pattern)

定义

意图:将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化

命令模式是一种对象行为型模式。

命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开。命令模式使请求本身成为一个对象,这个对象和其他对象一样可以被存储和传递。

命令模式的主要优点在于降低系统的耦合度,增加新的命令很方便,而且可以比较容易地设计一个命令队列和宏命令,并方便地实现对请求的撤销和恢复;其主要缺点在于可能会导致某些系统有过多的具体命令类。

结构

类图

image-20200701155613382

时序图

image-20200701155939072

角色

  • 客户端(Client):请求的发起者。

  • 抽象命令(Command):声明了用于执行请求的 execute() 等方法。

  • 具体命令(ConcreteCommand): 封装之后执行请求所需的信息,包括接收者对象及调用其方法所需的参数

  • 调用者(Invoker): 负责调用命令对象执行请求。

  • 接收者(Receiver): 负责具体实施和执行一个请求。

与其他模式的关联

适用场景

应用案例

  • GUI按钮和菜单项
  • 宏录制
  • HTTP请求

参考

总访问量
总访问人数 人次