1、命令模式
目的是达到命令的发出者和执行者之间的解耦,实现请求和执行的分开。
如:司令员下令让士兵做事。从整个事情的角度来考虑,司令员的作用是:发出口令。
然后口令经过传递到达士兵耳朵里。最后士兵对命令进行执行。
这个过程的司令员、命令、士兵三者的解耦,任何一方都不用去依赖其他人,只需要做好自己的事情就行。
(司令员只管发令;命令只管传递;士兵只管执行)
实例一
// 命令的抽象
public interface Command {
public boolean exe();
}
// 命令发布者
public class Invoker {
private Command command;
public Invoker(final Command command) {
this.command = command;
}
public void action() {
System.out.println(" ~~ 发布命令,同时获取该命令的执行情况 ~~~ ");
final boolean result = this.command.exe();
System.out.println(" ~~ 是否执行完毕: " + result);
}
}
// 命令执行着
public class Revicer {
public boolean action() {
System.out.println(" ~~ 执行命令 ~~~~");
return true;
}
}
//具体命令
public class MyCommand implements Command {
private Revicer revicer;
public MyCommand(final Revicer revicer) {
this.revicer = revicer;
}
@Override
public boolean exe() {
this.revicer.action();
return true;
}
}
模拟调用
public static void main(final String[] args) {
final Command command = new MyCommand(new Revicer());
final Invoker in = new Invoker(command);
in.action();
}