设计模式-命令模式

命令模式

介绍:

模式模式(Command Pattern),是行为型设计模式之一。命令模式相对于其他的设计模式来说,并没没有那么多的条条框框,其实它不是一个很‘规矩’的模式,不过,就是基于这一点,命令模式相对于其他的设计模式更为灵活多变。

使用场景

  • 在不同的时刻指定、排列和执行请求
  • 需要支持取消操作
  • 支持修改日志功能
  • 需要支持事物操作

代码块

CommandMode

package com.design.pattern.command;

public class CommandMode {

    public static void main(String[] args) {
        CommandMode commandMode = new CommandMode();
        // 构造一个接受者对象
        Receiver receiver = commandMode.new Receiver();
        // 根据接收者对象构造一个命令对象
        Command command = commandMode.new ConcreateCommand(receiver);
        // 根据具体的对象构造请求者对象
        Invoker invoker = commandMode.new Invoker(command);
        // 执行请求方法
        invoker.action();
    }

    /**
     * 接收者
     * @author EdwardAdmin
     *
     */
    private class Receiver {

        public void action() {
            System.out.println("执行具体操作");
        }
    }

    /**
     * 命令
     * @author EdwardAdmin
     *
     */
    private interface Command {
        void execute();
    }

    /**
     * 具体命令
     * @author EdwardAdmin
     *
     */
    public class ConcreateCommand implements Command {

        private Receiver mReceiver;

        public ConcreateCommand(Receiver receiver) {
            this.mReceiver = receiver;
        }

        @Override
        public void execute() {
            mReceiver.action();
        }

    }

    /**
     * 调用者
     * @author EdwardAdmin
     *
     */
    public class Invoker {
        private Command mCommand;

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

        public void action() {
            mCommand.execute();
        }
    }
}

你可能感兴趣的:(设计模式-命令模式)