定义:Encapsulatearequestasanobject,therebylettingyouparameterizeclientswithdifferentrequests,queueorlogrequests,andsupportundoableoperations.(将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。)
Receive接收者角色该角色就是干活的角色,命令传递到这里是应该被执行的,具体到我们上面的例子中就是Group的三个实现类(需求组,美工组,代码组)。
Command命令角色需要执行的所有命令都在这里声明。
Invoker调用者角色接收到命令,并执行命令。
在例子中,我(项目经理)就是这个角色。
使用场景:认为是命令的地方就可以采用命令模式,例如,在GUI开发中,一个按钮的点击是一个命令,可以采用命令模式;模拟DOS命令的时候,当然也要采用命令模式;触发-反馈机制的处理等。
文章链接 https://fangzongzhou.github.io/2021/02/14/计算机/设计模式/结构型模式/命令模式/