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 }

    三、运行结果

  • 相关阅读:
    LeetCode59 Spiral Matrix II
    LeetCode58 Length of Last Word
    LeetCode54 Spiral Matrix
    LeetCode63 Unique Paths II
    LeetCode62 Unique Paths
    LeetCode55 Jump Game
    网易2017年校招笔试题 最大的奇约数
    Codeforces Round #119 (Div. 2)
    Codeforces Round #118 (Div. 2)
    2016 MIPT Pre-Finals Workshop Taiwan NTU Contest
  • 原文地址:https://www.cnblogs.com/shamgod/p/4593772.html
Copyright © 2011-2022 走看看