标签:
一、概述
命令模式
二、代码
1.Client.java
1 public class Client { 2 3 public void request(Server server){ 4 server.addCommand(new TextCommand()); 5 server.addCommand(new ImageCommand()); 6 server.doSomething(); 7 } 8 }
2.Server.java
1 public class Server { 2 3 private List<Command> commands = new ArrayList<Command>(); 4 5 public void doSomething() { 6 for(Command c : commands){ 7 c.execute(); 8 } 9 } 10 11 public void addCommand(Command command) { 12 commands.add(command); 13 } 14 15 }
3.Command.java
1 public abstract class Command { 2 3 public abstract void execute(); 4 public abstract void unDo(); 5 6 }
4.TextCommand.java
1 public class TextCommand extends Command { 2 3 @Override 4 public void execute() { 5 System.out.println("TextCommand..........."); 6 } 7 8 @Override 9 public void unDo() { 10 // 涉及到操作的历史记录 11 } 12 13 }
5.ImageCommand.java
1 public class ImageCommand extends Command { 2 3 @Override 4 public void execute() { 5 System.out.println("ImageCommand..........."); 6 } 7 8 @Override 9 public void unDo() { 10 // 涉及到操作的历史记录 11 } 12 13 }
6.Test.java
1 public class Test { 2 3 @org.junit.Test 4 public void test(){ 5 Client c = new Client(); 6 c.request(new Server()); 7 } 8 9 }
三、运行结果
标签:
原文地址:http://www.cnblogs.com/shamgod/p/4593772.html