一、定义
命令模式就是将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排列或者记录请求日志,以及支持可撤销的操作。
二、框架运用
tomcat作为一个服务器本身会接受外部大量请求,当一个请求过来后tomcat根据域名去找对应的host,找到host后会根据应用名去找具体的context(应用),然后具体应用处理请求。对于具体host来说他不关心这个请求是谁给的,对应请求来说他不必关心谁来处理,但是两者是通过request封装请求对象进行关联起来。
三、实战
1、具体执行类
public class Receiver {
public void action(){
System.out.println("开始执行了");
}
}
public interface Command {
void execute();
}
public class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}
2、命令执行类
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void execute(){
command.execute();
}
}
3、执行和结果
public class Client {
public static void main(String[] args) {
Command command = new ConcreteCommand(new Receiver());
Invoker invoker = new Invoker(command);
invoker.execute();
}
}
Connected to the target VM, address: '127.0.0.1:51306', transport: 'socket'
开始执行了
Disconnected from the target VM, address: '127.0.0.1:51306', transport: 'socket'