Java-马士兵设计模式学习笔记-命令模式

一、概述

命令模式

 

二、代码

Java-马士兵设计模式学习笔记-命令模式

 

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 }

 

三、运行结果

你可能感兴趣的:(java)