职责链模式

生活案例

特点

    
      var askLeave = function(duration) {
          if (duration <= 0.5) {
              console.log('小组领导经过一番心理斗争:批准了')
          } else if (duration <= 1) {
              console.log('部门领导经过一番心理斗争:批准了')
          } else if (duration <= 2) {
              console.log('总经理经过一番心理斗争:批准了')
          } else {
              console.log('总经理:不准请这么长的假')
          }
      }
      askLeave(0.5)   // 小组领导经过一番心理斗争:批准了
      askLeave(1)     // 部门领导经过一番心理斗争:批准了
      askLeave(2)     // 总经理经过一番心理斗争:批准了
      askLeave(3)     // 总经理:不准请这么长的假
    
  
职责链模式可能在真实的业务代码中见的不多,但是作用域链、原型链、DOM 事件流的事件冒泡,都有职责链模式的影子

职责链模式与组合模式

职责链模式与装饰模式