美文网首页
职责链模式

职责链模式

作者: 姬94 | 来源:发表于2017-07-12 10:49 被阅读10次

    职责链模式定义

    避免将穷求发送者与接受者耦合在一起,让多个对象都有机会接受请求,将这些对象链接成一条链,平切沿着这条链传递请求,直到有对象处理它为止,职责链模式是一种对象行为型模式

    职责链模式结构图


    image.png

    职责链模式主要优缺点

    优点:
    1.职责链模式使得一个对象无须知道是其他哪一个对象处理其请求,对象仅需要知道该穷求会被处理即可,接受者和发送者都没有对方的明确信息,且链中的对象不需要知道链的结构,由客户端负责链的耦合度。
    2.请求处理对象仅需要维持一个指向其后继者的引用,而不需要维持它对所有的候选处理着的引用,可简化对象的相互连接。
    3.在给对象分配职责时,责任链可以提供更多灵活性,可以通过在运行时对链进行动态的增加或修改来增加处理改变处理一个请求的职责。
    4.在系统中增加一个新的具体请求处理者时,无须修改原有系统的代码,只需要在客户端重新建链即可,从这一点来看是符合开闭原则的。
    缺点:
    1.由于一个请求没有明确的接受者,那么就不能保证它一定会处理,改请求可能一直到链的末端都得不到处理;一个请求也可能因为责任链没有被正确配置而得不到处理。
    2.对于比较长的责任链,请求的处理可能涉及多个处理对象,系统性能将受到一定印象,而且进行代码调整时不太方便。
    3.如果建链不当,可能会造成循环调用,导致系统陷入死循环。

    职责链模式适用场景

    1.有多个对象可以处理同一个请求,具体哪个请求处理对象该请求带运行时刻再确定,客户端只需要将请求提交到链上,而无须关心请求的处理对象是谁,以及是如何处理的。
    2,在不明确制定接受者的情况下,想多个对象中的一个提交一个请求。
    3,可动态制定一组对象处理请求。客户端可以动态创建责任链来处理穷求,还可以改变链中处理者之间的先后循序。

    相关文章

      网友评论

          本文标题:职责链模式

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