责任链模式(Chain of Responsibility)
- 定义:为一个请求定义含有链状关系的接受对象,基于请求的类型,松耦合发送者和接受者之间的关系。
- 实现方式:
- 首先定义一个抽象类,包括一个公共抽象行为和决定子类链状关系的属性,然后创建一系列对象继承这个抽象类,
- 然后创建责任链关系(可线形结构、环形结构或树状结构)方法并返回顶级责任链类;
- JDK实例:java.util.logging.Logger#log();javax.servlet.Filter#doFilter();
- 项目实例:PR分级审批;
- 优点:将职责分类隔离处理,降低耦合,符合开闭原则,不需修改原有代码,新增一个责任类即可;
- 缺点:链结构遍历,性能有影响;