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

    相关类的类图

    开发中常见的场景

  • 相关阅读:
    哈夫曼树
    MUI
    mui.init方法配置
    js中如何把字符串转化为对象、数组示例代码
    ( 转 )超级惊艳 10款HTML5动画特效推荐
    ( 转 ) 关于微信公众号,你不知道的15个小技巧
    h5预加载代码
    css3常用动画样式文件move.css
    iphone微信 h5页音乐自动播放
    sshpass: 用于非交互的ssh 密码验证
  • 原文地址:https://www.cnblogs.com/erbing/p/5802606.html
Copyright © 2011-2022 走看看