• 【GOF23设计模式】命令模式


    来源:http://www.bjsxt.com/ 
    一、【GOF23设计模式】_命令模式、数据库事务机制底层架构实现、撤销和回复

    介绍

    结构

    1 package com.test.command;
    2 
    3 public class Receiver {
    4     public void action(){
    5         System.out.println("Receiver.action()");
    6     }
    7 }
     1 package com.test.command;
     2 
     3 public interface Command {
     4     /**
     5      * 这个方法是一个返回结果为空的方法。
     6      * 实际项目中,可以根据需求设计多个不同的方法
     7      */
     8     void execute();
     9 }
    10 
    11 class ConcreteCommand implements Command{
    12     private Receiver receiver;//命令的真正的执行者
    13 
    14     public ConcreteCommand(Receiver receiver) {
    15         super();
    16         this.receiver = receiver;
    17     }
    18 
    19     @Override
    20     public void execute() {
    21         //命令真正执行前或后,可执行其它相关的处理
    22         receiver.action();
    23     }
    24 }
     1 package com.test.command;
     2 /**
     3  * 调用者/发起者
     4  */
     5 public class Invoke {
     6     private Command command;//也可以通过容器List<Command>容纳很多命令对象,进行批处理。数据库底层的事务管理就是类似的结构!
     7 
     8     public Invoke(Command command) {
     9         super();
    10         this.command = command;
    11     }
    12 
    13     //业务方法,用于调用命令类的方法
    14     public void call(){
    15         //执行前或后,可执行其它相关的处理
    16         command.execute();
    17     }
    18 }
     1 package com.test.command;
     2 
     3 public class Client {
     4     public static void main(String[] args) {
     5         Command c = new ConcreteCommand(new Receiver());
     6 
     7         Invoke i = new Invoke(c);
     8 
     9         i.call();
    10 
    11 //      new Receiver().action();
    12     }
    13 }

    相关类的类图

    开发中常见的场景

  • 相关阅读:
    poj 1634
    poj 2153
    POJ 1693
    poj 1789
    POJ 2676
    vue 路由
    用 node.js 创建第一个Hello World
    js原生Ajax 的封装和原理
    BFC原理
    怎么理解js的面向对象编程
  • 原文地址:https://www.cnblogs.com/erbing/p/5802606.html
Copyright © 2020-2023  润新知