前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三分钟掌握“职责链模式”——轻松搞定设计模式

三分钟掌握“职责链模式”——轻松搞定设计模式

作者头像
大闲人柴毛毛
发布2018-03-09 11:08:15
6440
发布2018-03-09 11:08:15
举报
文章被收录于专栏:大闲人柴毛毛

职责链模式的官方定义:

职责链模式使得多个对象都有机会处理请求,从而降低了请求的发送者和接受者之间的耦合关系。这些对象被连成一条链,并沿着这条链传递发送者的请求,直到有一个对象能处理它为止。

职责链模式的类图:

1.职责链由若干个处理类拼接而成。每个处理类都有两个函数,setNext(Handler)用于设置当前处理类的下一跳地址,handle(request)用于处理请求。

若当前处理类的handle函数无法处理该请求,就将请求传给下一个处理类的handle函数处理。

2.这些处理类写完后交付给客户端。客户端需要创建所有处理类的对象,然后通过每个对象的setNext(Handler)函数设置每个对象的下一跳地址。然后执行某一个处理类对象的handler(request)函数,那么整条链就开始工作了;request会以此传递下去,直到某一个处理类能处理该请求为止。

职责链的好处:

(请求的处理类称为请求的接收者)

请求的发送者和接收者都不知道对方是谁,也就是接收者不知道发送者是谁,发送者不知道接收者是谁;而且链中的所有处理类都不知道链的结构。

职责链简化了对象的相互连接,每个对象仅仅需要维护一个下一跳地址,而不需要保存所有候选接收者的引用,这就大大降低了藕合度。

而且链的结构是由客户端定义的,客户端拿到的一个个处理类就像是一个个元器件,需要我们自己组装,因此这种方式很灵活,但也要避免一条请求走到链的末尾还是没有被处理的情况。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年08月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档