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

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

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

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

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

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

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

    相关文章

      网友评论

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

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