责任链模式(Chain of Responsibility)
即将一组处理器通过串行化的方式组装在一起,共同来处理同一个对象,这个对象具体会在哪一个处理器中进行处理是未知的,可以方便的对不同的需求组织不同的处理器实现高度自由化的定制处理策略
UML
- 从类图上看和策略模式很像,但与策略不同的地方在于,责任链将所有的实现自由的组装到一个链条中,可以是一个遍历的处理器数组,可以是由给每个处理器指定下一个出口,如果自己处理不了就交给下面处理
- servlet中对Filter的处理,MySql的拦截器,Spring的拦截器 都是这种思路进行链式的处理
小demo
- 接口定义
/**
* @author xiaoyingge
* @description
* @date 2020/4/24 0:38
*/
public interface Filter {
void doFilter ();
void setNext (Filter filter);
}
- 实现1
/**
*