设计模式——职责链模式

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

二、UML示意图

 

 

 三、优缺点

优点:

  • 降低了耦合度,把请求的发送者和接受者解耦,并且发送者不需要知道是谁处理了请求。
  • 职责链中的对象不需要知道职责链的结构。
  • 扩展性提高,要处理新的请求只需增加新的请求处理类。符合开闭原则。
  • 增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任。

缺点:

  • 不能保证请求一定被接收。
  • 职责链建立的合理性要靠客户端来保证,增加了客户端的复杂性,可能会由于职责链的错误设置而导致系统出错,如可能会造成循环调用。
  • 每一个请求都增加一个类会导致系统中有很多细粒度的类。
posted @ 2020-03-21 16:23  夜里寻星  阅读(108)  评论(0)    收藏  举报