职责连模式
Posted 沿着路走到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了职责连模式相关的知识,希望对你有一定的参考价值。
概念
一步操作可能分位多个职责角色来完成
把这些角色都分开,然后用一个链串起来
将发起者和各个处理者进行隔离
演示
例如一个请假审批,需要组长审批、经理审批、最后总监审批。代码如下:
// 请假审批,需要组长审批、经理审批、最后总监审批
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 的链式操作
- Stream pipe 链式操作
1
以上是关于职责连模式的主要内容,如果未能解决你的问题,请参考以下文章