命令模式
介绍:
模式模式(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();
}
}
}