类图
代码
Handler
1 | abstract class Handler{ |
ConcreteHandler
1 | class ProjectHandler extends Handler{ |
1 | class DeptHandler extends Handler{ |
1 | class CompanyHandler extends Handler{ |
测试类
1 | public class Main { |
Pipeline模式
1 | interface Valve { |
测试类
1 | public class Main { |
总结
概述
文中例子为公司审批流程的简化版,项目组审批权限为500以下,部门审批权限为5000以下,公司领导审批权限为50000以下,名字为王带头的会过,其他都不过
文中还有个例子是Pipeline模式,Pipeline可以说是tomcat的核心,它实际上也是一种变种的责任链模式,只是对整个责任链进行了包装(Pipeline类),它负责整个链表的维护工作,然后basic节点进行兜底,防止出现NPE
优点
实现了请求者和处理者之间的代码分离
缺点
链表的结构导致了悲观情况下,遍历到链尾才能找到对应的处理器