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); // 让职责链的第一个节点处理请求,一次传递,一到能够处理的节点。

  • 相关阅读:
    Android平板电脑开发实战详解和典型案例
    UG NX10.0技术大全(不附光盘)
    SolidWorks 2018中文版机械设计应用大全
    1192.回文字符串
    1193.矩阵转置
    1195.最长&最短文本
    1194.八进制
    1196.成绩排序
    1197.奇偶检验
    1199.找位置
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/3215640.html
Copyright © 2011-2022 走看看