责任链模式(Chain of Responsibility)

  • 定义:为一个请求定义含有链状关系的接受对象,基于请求的类型,松耦合发送者和接受者之间的关系。
  • 实现方式:
    • 首先定义一个抽象类,包括一个公共抽象行为和决定子类链状关系的属性,然后创建一系列对象继承这个抽象类,
    • 然后创建责任链关系(可线形结构、环形结构或树状结构)方法并返回顶级责任链类;

  • JDK实例:java.util.logging.Logger#log();javax.servlet.Filter#doFilter();
  • 项目实例:PR分级审批;
  • 优点:将职责分类隔离处理,降低耦合,符合开闭原则,不需修改原有代码,新增一个责任类即可;
  • 缺点:链结构遍历,性能有影响;

猜你喜欢

转载自www.cnblogs.com/stpan/p/9545885.html