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 }

    三、运行结果

  • 相关阅读:
    Ribbon【负载均衡策略】
    Ribbon【入门】
    Mysql主从复制原理及同步延迟问题
    JWT 身份认证优缺点分析以及常见问题解决方案
    Feign【token传递】
    Feign【首次请求失败】
    Feign【文件上传】
    Feign【替换默认的feign client】
    Feign【开启GIZP压缩】
    Feign【@FeignClient】
  • 原文地址:https://www.cnblogs.com/shamgod/p/4593772.html
Copyright © 2011-2022 走看看