zoukankan      html  css  js  c++  java
  • Chain of Responsibility

    比较经典的距离是请假申请(《大话设计模式》中的例子),请假是要逐级判断,只有级别到了才有权利审批,从构造上面其实“装饰”模式和“职责链”之间有相通的地方,但是两者的内涵去不同,前者其实是由一个封装的概念,而且会有一个核心对象,每一个装饰模式的扩展类其实都是为一个类的行为做服务,做封装;而职责链则是有一个传递的概念,通过继承父类的Handle的方法里面做校验是否需要传递到更高一级。

    image

    而且职责链还有一个本质的区别:就是在使用职责链之前一定是要先定义好这条链的顺序,然后将一个请求对象扔给链条的首端,让他逐个寻找。

    Leader l = new Leader();
    Manager m = new Manager();
    Supervise s = new Supervise();
    CEO c = new CEO();
    l.SetSuperior(m);
    m.SetSuperior(s);
    s.SetSuperior(c); // 这里是定义好了一条职责链

    LeaveRequest request  = new LeaveRequest();
    request.Days = 5;

    l.HandleAudit(request); // 让职责链的第一个节点处理请求,一次传递,一到能够处理的节点。

  • 相关阅读:
    KVM快速构建虚拟机
    工程师测试
    配置SMB,NFS
    Shell脚本基础应用
    Web网页部署
    基础邮件,mariadb数据库
    SElinux,firewalld配置
    Linux管理员测试
    磁盘分区
    配置权限,LDAP
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/3215640.html
Copyright © 2011-2022 走看看