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

    命令模式


    设计原则:遵循迪米特、开闭原则
    常用场景:行为的请求者与行为的处理者耦合度过高
    使用概率:20%
    复杂度:中高
    变化点:命令的种类
    选择关键点:请求者是否不需要关心命令的执行只知道接受者
    逆鳞:命令的种类无限制增长
    相关设计模式
    职责链模式:容易将二者关联在一起的原因是,二者都是为了处理请求或者命令而存在的,而且二者都是为了将请求者与响应者解耦,
    不同的是命令模式中,客户端需要知道一个命令的接受者,在创建命令的时候就把接受者与命令绑定在一起发送给调用者,
    而职责链模式中,客户端并不关心最终处理请求的对象是谁,客户端只是封装一个请求对象,随后交给职责链的头部而已,也正因为这样,二者的实现方式,有着很大的区别



    主要思想:
    代码就是让指定类去调用另一个类的指定方法
    相当于老板告诉秘书叫某个人过来,秘书就告诉某人 老板就你你过来下
    老板就是命令发出者,秘书就是调用者,某人就是命令接收者,这里老板就告诉了秘书接受者和命令



    //员工接收者
    public class Employee {
    
        public void execute(){
            System.out.println("接收命令并执行");
        }
    }
    
    //秘书调度者  这里的命令可以多种,接收者也可以多种
    public class Secretary {
    
        private Employee employee;
    
        public Secretary(Employee employee) {
            this.employee=employee;
        }
    
        public void execute(){
            this.employee.execute();
        }
    }
    
    
    //老板 命令发出着  也可以发各种命令
    public class Boss {
        private Secretary secretary;
    
        public Boss(Secretary secretary) {
            this.secretary = secretary;
        }
    
        public void sendCommand() {
            this.secretary.execute();
        }
    }
    
    
    
    public class Test {
        public static void main(String[] args) {
            Employee employee=new Employee();
            Secretary secretary=new Secretary(employee);
            Boss boss=new Boss(secretary);
            boss.sendCommand();
        }
    }
  • 相关阅读:
    关于机器学习
    高级管理者和普通管理者区别
    一个kafka异常
    怎么读技术书
    Windows下查看什么进程占用文件
    关于Apache Phoenix和Cloudera结合
    bootstrap基础学习十一篇
    bootstrap基础学习十篇
    bootstrap基础学习九篇
    bootstrap基础学习八篇
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7798424.html
Copyright © 2011-2022 走看看