来源:http://www.bjsxt.com/
一、【GOF23设计模式】_命令模式、数据库事务机制底层架构实现、撤销和回复
1 package com.test.command;
2
3 public class Receiver {
4 public void action(){
5 System.out.println("Receiver.action()");
6 }
7 }
1 package com.test.command;
2
3 public interface Command {
4 /**
5 * 这个方法是一个返回结果为空的方法。
6 * 实际项目中,可以根据需求设计多个不同的方法
7 */
8 void execute();
9 }
10
11 class ConcreteCommand implements Command{
12 private Receiver receiver;//命令的真正的执行者
13
14 public ConcreteCommand(Receiver receiver) {
15 super();
16 this.receiver = receiver;
17 }
18
19 @Override
20 public void execute() {
21 //命令真正执行前或后,可执行其它相关的处理
22 receiver.action();
23 }
24 }
1 package com.test.command;
2 /**
3 * 调用者/发起者
4 */
5 public class Invoke {
6 private Command command;//也可以通过容器List<Command>容纳很多命令对象,进行批处理。数据库底层的事务管理就是类似的结构!
7
8 public Invoke(Command command) {
9 super();
10 this.command = command;
11 }
12
13 //业务方法,用于调用命令类的方法
14 public void call(){
15 //执行前或后,可执行其它相关的处理
16 command.execute();
17 }
18 }
1 package com.test.command;
2
3 public class Client {
4 public static void main(String[] args) {
5 Command c = new ConcreteCommand(new Receiver());
6
7 Invoke i = new Invoke(c);
8
9 i.call();
10
11 // new Receiver().action();
12 }
13 }
来源:https://www.cnblogs.com/erbing/p/5802606.html