? ? ? ?命令模式(Command Pattern)是属于行为型的设计模式,它将请求封装为一个对象,使用户可以参数化其他对象的方法调用、队列或记录请求日志,以及支持可撤销的操作。这种模式把发出请求的责任和执行请求的对象分离开来。
execute()
?方法,所有具体命令类都必须实现这个方法。execute()
?方法中调用接收者的相应操作以完成请求。execute()
?方法,从而间接调用接收者的业务方法执行操作。示例代码:
命令模式java示例代码:
// 命令接口
interface Command {
void execute();
}
// 具体命令类
class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}
// 接收者
class Receiver {
public void action() {
System.out.println("Executing the command...");
}
}
// 调用者
class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void executeCommand() {
if (command != null) {
command.execute();
}
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker();
invoker.setCommand(command);
invoker.executeCommand(); // 输出 "Executing the command..."
}
}
?说明:在上面的代码中ConcreteCommand
?类将?Receiver
?对象的动作封装到其?execute()
?方法中。当?Invoker
?对象调用?executeCommand()
?时,实际执行的是接收者的?action()
?方法。
优点:
应用场景:
?