/**
* 真正的命令执行者
*/
class Receiver {
public void action() {
System.out.println("Receiver-->action");
}
}
interface Common {
void execute();
}
class ConcreteCommand implements Common {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
//命令前后做处理--感觉有点像AOP
receiver.action();
}
}
/**
* 调用者/发起者
*/
class Invoke {
private Common common;
public Invoke(Common common) {
this.common = common;
}
public void call() {
common.execute();
}
}