设计模式之 责任链模式
作者:互联网
一、定义
当你想让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式。
二、分析
我们在实际开发过程中,往往会遇到在执行某些操作时需要进行很多条件的验证。
比如说在用户在订购一个商品时,我们就需要进行用户认证、库存校验、账户校验等等操作,只有经过这些处理后才能正常执行操作。
如果我们在订购的代码里加上这些校验,就会变成下面的这样:
如果我们后续,需要添加更多的校验或者取消某些校验,这样会导致代码变得越来越多, 也越来越混乱。
当出现此类的逻辑,设计模式建议我们使用责任链模式。把处理逻辑连成一个链,链上的每个节点都可以跳转到下一个节点上。当需要处理的对象经过每个节点时,节点只需处理自己的逻辑,处理完成后调用下一个节点,直到走完所有的节点。
三、模式类图
四、优缺点
- 将请求者和接收者解耦;
- 简化类结构,类不需要知道全部细节;
- 可以更改处理的顺序,动态的添加和删除校验逻辑;
- 并不能保证请求被处理;
- 请求链过长会导致性能降低;
- 不易于观察运行时特征,有碍于除错,我能可能找不到是哪一个类处理了它。
五、实例
在员工请假流程中,公司规定:
请假天数3天内,部门经理审批即可,
请假天数大于3天的需要再通过老板审批后才能请假。
根据实例说明,我们可以定义部门经理的处理类和老板处理类,当请假天数3天内,部门经理就进行审核;
审核完成后流向老板处理类,老板处理类判断,发现天数在3天以内就继续往下放行,大于3天就进行审核。
标签:请假,处理,天数,校验,模式,责任,设计模式,节点,部门经理 来源: https://www.cnblogs.com/lixingwu/p/14979490.html