一句话解释
命令模式,通过理解命令这个词就可以了,我们去命令别人做这件事,而并非自己亲自去执行,那么就叫做命令模式。
命令模式通过封装过程为对象——Command类来实现。通常,我们都会使请求直接调用他的处理类,通过命令模式我们可以封装过程,从而可以对这个请求过程进行设定,达到我们想要的结果。例如,对Command类中添加线程池,设定超时时间,熔断机制等。
示例
/**
* 真正对请求做出处理的类(接收者)
*/
public class Receiver {
public void action() {
System.out.println(
"执行了!");
}
}
/**
* 命令类接口
*/
public interface Command {
void Execute();
}
/**
* 命令类实现类
*/
public class Icommand implements Command {
private Receiver receiver;
@Override
public void Execute() {
receiver.action();
}
public Icommand(Receiver receiver) {
this.receiver = receiver;
}
}
/**
* 调用类,暴露给客户端
*/
public class Invoker {
private Command command;
public void run() {
command.Execute();
}
public Invoker(Command command) {
this.command = command;
}
}
public class Client {
public static void main(String[] args) {
Receiver receiver =
new Receiver();
Command command =
new Icommand(receiver);
Invoker invoker =
new Invoker(command);
invoker.run();
}
}