命令模式(Command)
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。
命令模式一般为三部分:接受者(Receiver)、命令(Command)、调用者(Invoker)
接受者代码
命令代码
调用者代码
测试
测试结果:
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。
命令模式一般为三部分:接受者(Receiver)、命令(Command)、调用者(Invoker)
接受者代码
public class Receiver {
public void action(){
System.out.println("Roger that!");
}
}
命令代码
public class Command {
private Receiver receiver;
public Command(Receiver receiver){
this.receiver=receiver;
}
public void execute(){
receiver.action();
}
}
调用者代码
public class Invoker {
private Command command;
public Invoker(Command command){
this.command=command;
}
public void action(){
command.execute();
}
}
测试
public class Demo {
public static void main(String[] args) {
Receiver receiver=new Receiver();
Command command=new Command(receiver);
Invoker invoker=new Invoker(command);
invoker.action();
}
}
测试结果:
Roger that!