zoukankan      html  css  js  c++  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 }

    三、运行结果

  • 相关阅读:
    gotour源码阅读
    CPU知识
    GCC知识
    go/src/make.bash阅读
    Go的pprof使用
    CGI的一些知识点
    STM32——C语言数据类型
    css 学习资料
    项目管理实践教程
    js 格式验证总结
  • 原文地址:https://www.cnblogs.com/shamgod/p/4593772.html
Copyright © 2011-2022 走看看