理解设计模式(十四)——职责链模式
职责链模式
- 理解设计模式(一)——简单工厂
- 理解设计模式(二)——工厂方法
- 理解设计模式(四)——建造者
- 理解设计模式(五)——原型模式
- 理解设计模式(六)——单例模式
- 理解设计模式(七)——适配器模式
- 理解设计模式(八)——桥接模式
- 理解设计模式(九)——组合模式
- 理解设计模式(十)——装饰模式
- 理解设计模式(十一)——门面模式
- 理解设计模式(十二)——享元模式
- 理解设计模式(十三)——代理模式
提出问题
某一个对象(请求)可能需要经过长长的处理流程,之后才会被返回给请求者。并且,上一步的处理结果是下一步处理的输入。
比如说,一份奖学金申请表需要经过辅导员->系主任->院长->校长。后面一个人拿到的是前一个人审批结束后的结果。另外如果是校级奖学金才可能需要经过校长审批,其他奖学金不需要到校长那里。另外,有些文件可能辅导员无权处理,应该直接送报给系主任。
在这个流程中,每个人都有着自己的职责,他们都知道自己是否有权限/是否能够处理当前的请求。并且每个人都知道自己完成自己的职责后,下一个处理的人应该是谁。这样子就形成了一个链式的结构,这就是职责链。
我们要做的,就是使用代码来表述这样的职责链的结构。
解决问题
直接上代码:
class Handler { |