命令模式是一种行为型设计模式,它将请求封装为一个对象,从而使您可以用不同的请求对客户进行参数化。命令模式支持请求排队、记录日志、撤销/重做等操作。
// 命令接口
public interface Command {
void execute();
void undo();
}
// 具体命令
public class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
@Override
public void undo() {
receiver.undo();
}
}
// 调用者
public class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void executeCommand() {
command.execute();
}
public void undoCommand() {
command.undo();
}
}