设计模式中的命令模式
它的意图是:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销操作
比方说,你向服务员点菜,服务员把你点的菜写到订餐单里,你点的菜就是命令,这个订餐单就是对命令的封装,封装为一个对象。服务员把点餐单传递给厨师,厨师是负责执行命令的人。
Command:抽象命令类,声明执行操作的一个接口
ConcrteCommand:具体命令类,将一个接受者对象绑定于一个动作。实现EXEUTE方法,以调用接收者的具体操作
Invoker:调用者,要求一个命令对象执行一个请求
Receiver:接收者,知道如何执行关联请求的相关操作
Client:客户应用程序,创建一个具体命令类对象,并且设定它的接收者