1. 概念
命令模式:
将一个请求封装成一个对象,从而使得用户可以用不同的请求对用户进行参数化,对请求排队或者记录请求日志,以及支持可撤销动作。
一般来说。在java中经常会涉及到,一个对象请求另一个对象调用其方法来达到目的,如果请求这不像或者不希望直接和被调用者打交道(不希望或者无法含有被请求者的引用,就可以使用命令模式)
2. 实例
结构:
接受者
命令接口
具体命令
请求者
接受者:
public class ComanyArmy {
public void sneakCommand(){
System.out.println("点一份薯条");
}
}
命令接口
public interface Command {
void execute();
}
具体命令
public class ConcreteCommand implements Command {
ComanyArmy comanyArmy;
ConcreteCommand(ComanyArmy Army) {
this.comanyArmy = Army;
}
@Override
public void execute() {
comanyArmy.sneakCommand();
}
}
调用者
public class invoker {
Command command;
public void sendCommand(Command command) {
this.command = command;
}
public void startExecuteCommand() {
command.execute();
}
}
测试
public class test {
public static void main(String[] args) {
ComanyArmy comanyArmy=new ComanyArmy();
Command command=new ConcreteCommand(comanyArmy);
invoker invoker=new invoker();
invoker.sendCommand(command);
invoker.startExecuteCommand();
}
}