设计模式:命令模式

发布时间:2021-10-04 22:20:05 阅读:(179)

    命令模式

    什么是命令模式

    将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能

    设计思想

    将具体的命令与对应的接收者相关联(捆绑),使得调用方不关心具体的行动执行者及如何执行,只要发送正确的命令,就能准确无误地执行相应地任务。

    命令模式是一种高内聚模式,它把命令封装成对象,并与接收者关联在一起,从而使(命令的)请求者和接收者分离

    设计要点

    • 命令:要完成地任务,或要执行地动作,这是命令模式地核心角色
    • 接收者:任务地具体实施方,或行动地真实执行者
    • 调度者:接受任务并发送命令,对接用户的需求并执行内部的命令,负责外部用户与内部命令的交互
    • 用户:命令的使用者,即真正的用户

    优缺点

    优点:

    • 对命令的发送者与接收者进行解耦,使得调用方不用关心具体的行动执行者及如何执行,只要发送正确的命令即可
    • 可以很方便地增加新的命令

    缺点:
    在一些系统中可能会有很多命令,而每一个命令都需要一个具体地类去封装,容易使得命令地类急剧膨胀

    应用场景

    • 希望系统发送一个命令(或信号),任务就能得到处理时。如GUI中地各种按钮的点击命令,再如自定义一套消息的响应机制
    • 需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互时
    • 需要将一系列的命令组合成一组操作时,可以使用宏命令的方式