命令模式的本质是对请求进行封装,一个请求对应一个命令,将发出命令的责任和执行命令的责任分割开,使得请求的一方不必了解接收请求的一方的接口,更不必知道请求如何被接收、操作是否被执行、何时被执行,以及是怎么被执行的。包含以下四个角色:
1、Command(抽象命令类):抽象命令类一般是一个抽象类或接口,在其中声明了用于执行请求的Execute()方法,通过这些方法可以调用请求接收者的相关操作。
2、ConcreteCommand(具体命令类):具体命令类是抽象命令类的子类,实现了抽象命令类中声明的方法,它对应具体的接收者对象,将接收者对象的动作绑定其中。具体命令类在实现Execute()方法时,将调用接收者对象的相关操作(Action)。
3、Invoker(调用者):调用者即请求发送者,它通过命令对象来执行请求。一个调用者不需要在设计时确定其接收者,因此只与抽象命令之间存在关联关系。在程序运行时可以将一个具体命令对象注入其中,再调用具体命令对象的Execute()方法,从而实现简介调用请求接收者的相关命令。
4、Receiver(接收者):接收者执行与请求相关的操作,具体实现对请求的业务处理。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。