前言
作为一个前端切图仔
,少有和各类设计模式打交道。但这不影响我们学习设计模式的思维,来提升我们的代码水平。
本章通过讲解职责链模式
,希望能够让你对设计模式更一步的学习。
本章学习内容👇
- 认识
职责链模式
职责链模式
什么是
职责链模式
?
职责链模式
:使多个对象都有机会处理请求,从而避免请求的发送者和接收者 之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
职责链模式
听上去很抽象,但如同它的名称一样。在职责链
这条链上的对象都有俩个职责:
- 处理对自身的请求
- 当自身无法处理请求时(没有对应属性或方法),(如果)在链上还有后继,那么就往后递交这个请求
职责链模式在现实中的例子并不难找,以下我列举俩个跟职责链模式有关的场景。
- 假如在产品上线的前一天,你有些事情想请假,于是这时候你找到你的小组长请求批假。小组长收到请求后,心想这是发布的前一天,自己做不了这个决定,于是又向部门领导请求批假。最后部门领导不同意批假。
- 在考试时,一般不老实的同学会被放在第一排答题,以便老师观察。当你遇到不会的题目时,就把题目编号写在小纸条上往后传递,坐到后面的同学如果也不会答,那么他就会继续把这张小纸条往后传递。
从上面这俩个例子中,我们可以发现职责链模式
中最大的优点:
职责链
的请求方,只需要知道这条链上的第一个对象,无需知道他后续的对象。
其实,除了这些现实生活中的例子,我们前端程序员随时都在和职责链模式
打交道。
什么?
回想下原型链
,是不是听上去和职责链
很像?
其实原型链
本身也是一个很好的案例,当你对一个对象请求时,这个请求会顺着原型链
依次递归请求(当他不能处理时),并且请求对象也无需知道后续的原型对象
尾声
在下一章中,我们将自己实现一个职责链模式
的案例。