命令模式
将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销
和恢复功能。
三个角色:1、Receive接收者角色;2、Command命令角色;3、Invoker调用者角色。
//抽象命令类
public abstract class Command {
public abstract void execute();
}
//抽象接收类
public abstract class Receive {
public abstract void doSomething();
}
//调用者类
public class Invoker {
private Command command;
//接受命令
public void setCommand(Command command) {
this.command = command;
}
//执行命令
public void action(){
this.command.execute();
}
}
//具体命令类
public class ConcreteCommand extends Command {
private Receive receive;
public ConcreteCommand(Receive receive) {
this.receive=receive;
}
@Override
public void execute() {
this.receive.doSomething();
}
}
//具体接收类
public class ConcreteReceive extends Receive {
@Override
public void doSomething() {
//处理业务逻辑
}
}