标签:
命令模式:将一个请求封装为一个对象,从而使我们可以用不同的请求对 客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作模式,事务模式。
例如数据库的底层架构实现就是一种命令模式。
一个具体的命令来实现命令接口,并且通过Reciever的action()实现execute()方法,Invoker通过call()方法来执行命令。可以把命令参数化,实现调用者和具体命令的执行松耦合。
一个小Demo:
public interface Command {
void execute();
}
class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver recerver) {
this.receiver = recerver;
}
@Override
public void execute() {
//可以做更复杂的操作
receiver.action();
}
}
public class Receiver {
public void action() {
System.out.println("执行命令");
}
}
public class Invoke {
private Command cmd;
public Invoke(Command cmd) {
this.cmd = cmd;
}
public void call() {
cmd.execute();
}
}
public class Client {
public static void main(String[] args) {
Command cmd = new ConcreteCommand(new Receiver());
Invoke invoke = new Invoke(cmd);
invoke.call();
}
}
标签:
原文地址:http://www.cnblogs.com/wxisme/p/4540588.html