设计模式——命令模式

      命令模式:将一个请求封装为一个对象,从而使我们可以用不同的请求对 客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作模式,事务模式。

     例如数据库的底层架构实现就是一种命令模式。

     一个具体的命令来实现命令接口,并且通过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();
	}

}
原文地址:https://www.cnblogs.com/wxisme/p/4540588.html