“命令模式”的个人理解

来源:互联网 发布:java重载和重写 编辑:程序博客网 时间:2024/04/29 06:06

命令模式包含Client(客户端代码)、Command接口(或抽象类)、ConcreteCommand(实现Command接口)、Receiver(命令的执行者)、Invoker(调用不同的命令)。


Command接口(抽象类):定义了一个命令的接受者Receiver、抽象的执行方法Execute()。


ConcreteCommand类:实现(继承)Command,将一个接受者对象绑定于一个动作,调用接收者相应的Action()操作,以实现Execute()。


Receiver类:包括一个Action()方法,知道如何实施与执行一个请求相关的操作,任何类都可能作为一个接收者。


Invoker类:包含一个Command类型的私有成员,通过SetCommand(Command command)方法绑定具体的Command类型成员,ExecuteCommand()方法调用具体的Command成员的Execute()方法。


在Client端代码中,初始化一些命令的Receiver,Command c = new ConcreteCommand(receiver),将命令c与receiver绑定起来;初始化调用者Invoker,调用Invoker的SetCommand(c),再执行Invoker的ExecuteCommand方法。