原则

  1. 能够解耦发出请求的对象和执行请求的对象
  2. 命令对象内部需要封装执行请求的对象

核心点

  1. 命令抽象类存在一个执行动作的抽象函数
  2. 命令的实现对象来实现这个抽象函数,并且最重要的是委托具体执行对象来实现最终逻辑的
  3. 也就是说命令的实现对象内部会保存执行对象的引用或者实例

最终目的

为了解耦。解耦发出请求对象和执行请求的对象,实现发送请求的对象不需要知道如何执行。
示例如:

  1. 服务员不需要知道如何做一道菜,他只需要知道客户点了什么菜就行
  2. 线程队列不需要知道每个执行动作会产生什么变化,只需要运行线程即可

感受

类似分工细化,流水线上游不需要知道下游应该怎么做,遇到这种不关心你是如何做的,我觉得就可以用一个公共抽象层,具体的实现抽象接口时封装你的行为逻辑,达到解耦

定义

将请求封装成对象,可以让你使用不同的请求、队列,或者日志请求,来参数化其它对象,命令模式也可以支持撤销动作。

类图

作者:admin  创建时间:2024-07-02 16:30
最后编辑:admin  更新时间:2025-02-10 11:18