设计模式-职责链模式

概念

  • 一步操作可能分为多个职责角色来完成
  • 把这些角色都分开,然后用一个链串起来
  • 将发起者和各个处理者进行分离

演示

js 复制代码
// 请假审批,需要组长审批、经理审批、最后总监审批
class Action {
    constructor(name) {
        this.name = name
        this.nextAction = null
    }
    setNextAction(action) {
        this.nextAction = action
    }
    handle() {
        console.log(`${this.name} 审批`)
        if (this.nextAction != null) {
            this.nextAction.handle()
        }
    }
}

let a1 = new Action('组长')
let a2 = new Action('经理')
let a3 = new Action('总监')
a1.setNextAction(a2)
a2.setNextAction(a3)
a1.handle()

JS中的链式操作

  • 职责链模式和业务结合较多,JS中能联想到链式操作
  • jQuery的链式操作,Promise.then的链式操作.

设计原则验证

  • 发起者于各个处理者进行隔离
  • 符合开放封闭原则
相关推荐
雪雪爱冲浪2 小时前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
软件技术NINI2 小时前
化妆品html+css+js 7页
javascript·css·html
要吃这碗饭2 小时前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
lexiangqicheng2 小时前
自定义表单跨端共用机制-PC设计APP渲染
java·前端·javascript
沙漏无语2 小时前
pnpm 安装@vue-office包的幽灵依赖问题解决
前端·javascript·vue.js
Jmyd01232 小时前
VR全景线上展会制作流程技术解析:全景采集、点云重建与Web端渲染优化实战
前端·javascript·vr·三维数字化
℘团子এ2 小时前
vue2中自定义指令的使用
前端·javascript·vue.js
怕浪猫3 小时前
腾讯又交作业了,开源版 WorkBuddy 太夯了!这回是只粉色小章鱼Octop!
javascript·面试·agent
梦醒沉醉3 小时前
8、正则表达式
javascript
sun_weitao4 小时前
Chrome 扩展插件开发指南
前端·javascript·chrome