前言
责任链感觉用的也不少,尤其是当各种系统启动的时候,要初始化好多东西,并且这些启动都是有一定的顺序,谁在前,谁在后,谁是必须启动的,谁是暂时可以不启动的;还有就是web请求过来的时候,需要一级级去处理,这些处理过程,都有一些内在的逻辑,而这些东西对外部请求都是不可感知的,只会在请求处理完毕之后(正常或着异常结束),会返回给外部或者调用端信息,告诉成功执行结果或者告诉异常信息
角色
1.要有一个抽象类,定义处理请求的方法和请求的处理过程
2.具体的handler实现类,用于对请求进行一级级处理
本文
1.场景为小明向家人要零花钱为例
2.先向妈妈要,若妈妈可以处理,则处理请求
3.若妈妈处理不了,则将请求传递给小明的爸爸去处理,若可以处理,则处理
4.若爸爸处理不了,则传递给爷爷,若可以处理,则处理,不可以处理的话,告诉原因
实例
抽象处理类,定义了处理方法,设置handler方法
public abstract class ChangeHandler {
private ChangeHandler nextHandler;
public ChangeHandler getNextHandler() {
return nextHandler;
}
public void setNextHandler(ChangeHandler nextHandler) {