美文网首页
15. 行为扩展 - 责任链模式

15. 行为扩展 - 责任链模式

作者: 转岗做JAVA | 来源:发表于2021-10-19 09:55 被阅读0次
定义

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

“直到有一个对象处理它为止”是书上的表述,可能会有歧义,故作说明。
个人认为责任链可以是一个对象处理,也可以是多个对象处理。

  • 比如不确定请求具体由哪个对象处理,则可以构建责任链从头到尾依次识别该类是否能响应,若已经响应了,则中断请求的继续传递,这就是一个对象处理。
  • 比如一个请求需要经过层层处理,则可以通过责任链构建这种层次关系,当前类处理完后传递给下一个处理类处理,这就是多个对象处理。
如何实现

第一步:责任链上处理类定义统一的处理接口,并在抽象层或基类中通过通用的nextResponder方法设置并持有下一个处理类;
在通用处理接口中先调用当前的处理类处理,再调用nextResponder处理;
第二步:客户端调用链的初始化方法,初始化完整链上的处理类,该初始化过程会将链上处理类的方法串联起来;
第三步:客户端将待处理的类传递给责任链头的处理类去处理即可;

相关文章

网友评论

      本文标题:15. 行为扩展 - 责任链模式

      本文链接:https://www.haomeiwen.com/subject/uqyroltx.html