代码随想录算法训练营第五十七天 | 392.判断子序列、115.不同的子序列
概念
- 一步操作可能分为多个职责角色来完成
- 把这些角色都分开,然后用一个链串起来
- 将发起者和各个处理者进行分离
演示
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的链式操作.
设计原则验证