前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

1、Commond命令模式

1.1、解释

命令模式,个人看来是没有使用过的,其实仔细看的话,也必将明确,就是说讲一个类作为命令去存储了,这个命令内部存储的就是去执行这个命令的人或者物,将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。

1.2、示例代码

司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行

2.1、命令接口Command

public interface Command {

     void exe();

}

2.2、命令实现类,可以观察到内部有执行者

public class MyCommand implements Command {

    private Receiver receiver;

    public MyCommand(Receiver receiver) {
        this.receiver = receiver;
    }

    @Override
    public void exe() {
        receiver.action();
    }
}

2.3、执行者执行自己的内容

public class Receiver  {

    public void action(){
        System.out.println("command received!");
    }
}

2.4、发送命令的人

public class Invoker {
    private Command command;

    public Invoker(Command command) {
        this.command = command;
    }

    public void action(String word){
        command.exe(word);
    }
}

2.5、测试

public class D22Main {

    public static void main(String[] args) {
        //命令的执行者
        Receiver receiver = new Receiver();
        //命令--被哪个执行者执行
        Command cmd = new MyCommand(receiver);

        //调用命令
        Invoker invoker = new Invoker(cmd);
        invoker.action("杀人");
    }
}