目录
一、责任链模式
最近在做一个数据校验的功能,需要校验的东西很多,有的从数据库中查询,有的是固定的数值校验,有的是数据类型校验, 如果通过ifelse来写,也是没问题的。
但,为了代码的优雅和可扩展性,我选择尝试一下责任链模式,责任链模式的核心是解决一组服务中的先后执行处理关系。
责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止。属于行为型模式。
二、责任链模式的优缺点
1、优点
- 减少大量ifelse;
- 逻辑清晰明了,添加删除节点、改变节点顺序方便快捷;
- 请求与处理解耦;
- 请求处理者只需关注自己感兴趣的请求,对于不感兴趣的请求,直接转发给下一级节点对象;
- 易于扩展新的请求处理类,符合开闭原则;
2、缺点
- 责任链太长或处理时间过长,会影响整体性能。
- 如果需要判断的东西较多,容易造成类保证;
- 如果每个判断