职责链模式

职责链模式

定义

使(或创建)多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止
职责链模式的名字非常形象,一系列可能会处理请求的对象被连成一条链,请求在这些对象之间依次传递,知道遇到一个可以处理它的对象

现实用例

如果早高峰能顺利挤上公交车的话,那么估计这一天都会过的很开心,因为公交车上人实在太多了,经常上车后找不到售票员在哪,所以只能把硬币往前面递,除非运气够好,站在面前的就是售票员,否则,硬币通常要在 N 个人手上传递,才能最终到达售票员的手里
通过上面这个例子,很容易找到职责链模式的最大优点:请求发送者只需要知道链中第一个节点,从而弱化了发送者和一组接收者之间的强联系,如果不适用职责链模式,那么在公交车上,我就得搞清楚谁是售票员,才能把硬币给他

小结

在 JS 开发中,职责链是最容易被忽视的模式之一,实际上只要运用得当,职责链模式可以很好地帮助管理代码,降低发送请求的对象和处理请求的对象之间的耦合性,职责链中的节点数量和顺序是可以自由变化的,可以在运行时决定链中包含哪些节点
无论是作用域链,原型链,还是 DOM 节点中的事件捕获冒泡,都能从中找到职责链模式的影子,职责链模式还可以和组合模式结合,用来连接部件和父部件,或是提高组合对象的效率


职责链模式
http://blog.climbed.online/2023/11/24/Web -- Knowledge is infinite/编程思想/设计模式/职责链模式/
作者
Z.K.
发布于
2023年11月24日
许可协议