JavaScript职责链模式与开发实践(上)

前言

作为一个前端切图仔,少有和各类设计模式打交道。但这不影响我们学习设计模式的思维,来提升我们的代码水平。

本章通过讲解职责链模式,希望能够让你对设计模式更一步的学习。

本章学习内容👇

  • 认识职责链模式

职责链模式

什么是职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者 之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

职责链模式听上去很抽象,但如同它的名称一样。在职责链这条链上的对象都有俩个职责:

  • 处理对自身的请求
  • 当自身无法处理请求时(没有对应属性或方法),(如果)在链上还有后继,那么就往后递交这个请求

职责链模式在现实中的例子并不难找,以下我列举俩个跟职责链模式有关的场景。

  • 假如在产品上线的前一天,你有些事情想请假,于是这时候你找到你的小组长请求批假。小组长收到请求后,心想这是发布的前一天,自己做不了这个决定,于是又部门领导请求批假。最后部门领导不同意批假。
  • 在考试时,一般不老实的同学会被放在第一排答题,以便老师观察。当你遇到不会的题目时,就把题目编号写在小纸条上往后传递,坐到后面的同学如果也不会答,那么他就会继续把这张小纸条往后传递

从上面这俩个例子中,我们可以发现职责链模式中最大的优点:

  • 职责链的请求方,只需要知道这条链上的第一个对象,无需知道他后续的对象。

其实,除了这些现实生活中的例子,我们前端程序员随时都在和职责链模式打交道。

什么?

回想下原型链,是不是听上去和职责链很像?

其实原型链本身也是一个很好的案例,当你对一个对象请求时,这个请求会顺着原型链依次递归请求(当他不能处理时),并且请求对象也无需知道后续的原型对象

尾声

在下一章中,我们将自己实现一个职责链模式的案例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值