简介
命令模式是将行为请求和行为实现进行解耦,以命令的形式包裹在对象中,并传给调用对象,调用对象寻找可以处理该命令的对象。
抽象命令角色
public interface Command {
public void execute();
}
具体命令角色
public class ConcreteCommand implements Command {
public Receiver receiver;
public ConcreteCommand(Receiver receiver){
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}
具体命令角色最终调用的是具体接收者中的方法,由具体的接收者去处理。
接收者
public class Receiver {
public void action(){
System.out.println("开始处理......");
}
}
真正执行具体命令的对象。
调用者
public class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void invoker(){
command.execute();
}
}
测试
public class CommandDemo {
public void command(){
// 接收者
Receiver receiver = new Receiver();
// 具体命令角色
Command command = new ConcreteCommand(receiver);
// 调用者
Invoker invoker = new Invoker();
// 设置命令角色
invoker.setCommand(command);
// 调用者调用请求
invoker.invoker();
}
}