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 }

    三、运行结果

  • 相关阅读:
    腾讯精品课程
    什么都没有,先空出来!
    Python3-super().__init()__
    Python3-模块
    Python3-单例模式
    Python3-私有化修改
    Python3-私有属性
    Python3-面向对象-魔术方法
    Python3-面向对象-四种方法
    Python3-迭代器
  • 原文地址:https://www.cnblogs.com/shamgod/p/4593772.html
Copyright © 2011-2022 走看看