zoukankan      html  css  js  c++  java
  • java23中设计模式之命令模式

    package com.bdqn.command;
    /**
     * 
     * @author OU
     *
     */
    public interface Command {
        //这个方法是一个返回结果为空的放大 实际项目中,可以根据需求设计多个不同的方法
       void execute();
    }
    
    class ConcreteCommand implements Command{
         //命令的真正的执行者
          private Receiver receiver;
          
        
        
        public ConcreteCommand(Receiver receiver) {
            super();
            this.receiver = receiver;
        }
    
    
    
        public void execute() {
            //命令真正执行前或后,执行相关的操作
            receiver.action();
        }
        
    }
    command
    package com.bdqn.command;
    /**
     * 真正的命令执行者
     * @author OU
     *
     */
    
    public class Receiver {
       public  void action(){
           System.out.println("Receiver.action");
       }
    }
    receiver
    package com.bdqn.command;
    /**
     * 调用者
     * @author OU
     *
     */
    public class Invoke {
        //也可以通过容器list<command> 可以容纳很多命令对象,进行批处理,数据库底层的事务管理就是类似的结构
      private Command command;
    
    public Invoke(Command command) {
        super();
        this.command = command;
    }
      //业务方法,用于调用命令类的方法
      public void   call(){
          command.execute();
          
      }
      
    }
    invoke
    package com.bdqn.command;
    
    public class Client {
     public static void main(String[] args) {
         Command c=new ConcreteCommand(new Receiver());
         Invoke i=new Invoke(c);
         i.call();
    }
    }
    client
  • 相关阅读:
    vue表单验证定位到错误的地方
    INSPINIA Version 2.5 Bootstrap3
    volatile 彻底搞懂
    solr6.4.2之webservice兼容升级
    快速排序
    Elasticsearch调优篇 10
    TCP 连接为什么需要 3 次握手和 4 次挥手
    搜索技术与方案的选型与思考
    Elasticsearch调优篇 09
    Elasticsearch调优篇 08
  • 原文地址:https://www.cnblogs.com/ou-pc/p/7523580.html
Copyright © 2011-2022 走看看