命令模式

作用
命令模式可将“动作的请求者”从“动作的执行者”对象中解耦;
命令模式将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令对象也支持撤销操作;

命令也可以将运算块打包(一个接收者和一组动作),形成一个命令组合,存储,传递或调用它们;比如:打开一个总开关实现打开电源,音响,电视操作;

** 实现方式 **

  1. 调用者 只关心 Command接口;
  2. 调用者与接收者不存在直接关系,而是通过 Command接口进行通信;
  3. 具体命令与其对应的接收者绑定在一起,命令对象 包含接收者,让命令对象控制接收者;

类图

Paste_Image.png
  1. Command接口:为所有命令的接口,调用命令对象execute(),就可以让接收者进相关的动作;
  2. ConcreteCommnad:为具体命令类,实现Command接口,并持有一个 Receiver接收者的实例;定义了动作与接收者之间的绑定关系。调用者只需要调用execute(),发出请求,然后由她来调用接收者的处理动作;实现解耦;
  3. Receiver:为命令接收者类,接收者知道如何处理命令请求,任务类,都可以当接收者;
  4. Invoker: 为 调用者类,持有命令接口对象,用来调用命令对象的 execute(),用来发出命令请求;
  5. Client: 为客户端,客户端负责创建 ConcreteCommand,并设置接收者;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容