Command(抽象命令类) ConcreteCommand(具体命令类) Invoker(调用者) Receiver(接收者)
//调用者
class Invoker {
private Command command;
//构造注入
public Invoker(Command command) {
this.command = command;
}
//设值注入
public void setCommand(Command command) {
this.command = command;
}
//业务方法,用于调用命令类的execute()方法
public void call() {
command.execute();
}
}
//具体命令
class ConcreteCommand extends Command {
private Receiver receiver; //维持一个对请求接收者对象的引用
public void execute() {
receiver.action(); //调用请求接收者的业务处理方法action()
}
}
//接受者
class Receiver {
public void action() {
//具体操作
}
}