一、抽象基类
/**
* 责任链抽象基类
* 1、声明一个传递对象
* 2、声明一个子类需要实现的方法
* 3、设置实现类传递方法、获取传递类
* 4、实现方法无法处理:当前对象无法处理,传递到下一个实现
* 4、实现方法可以处理
*
* @author LIUJIANJIAN
* @date 2021年4月15日10:39:56$
*/
public abstract class BaseHandler {
//声明一个传递对象
protected BaseHandler nextHandler;
//声明一个子类需要实现的方法
public abstract void resovle(String condition);
//设置实现类传递方法、获取传递类
public BaseHandler nextHandler(BaseHandler baseHandler){
nextHandler=baseHandler;
return baseHandler;
}
//实现方法无法处理:当前对象无法处理,传递到下一个实现
protected void nextStep(String condition){
if(null==nextHandler){
return;
}
nextHandler.resovle(condition);
}
//实现方法可以处理
protected void stopStep(){
System.out.println("处理完成");
}
}
二、子类实现one
/**
* 子类实现方法一
*
* @author LIUJIANJIAN
* @date 2021年4月15日10:56:19$
*/
public class OneHandler extends BaseHandler {
@Override
public void resovle(String condition) {
if(condition.equals("one")){
System.out.println("one=======》:结束");
stopStep();
}else{
System.out.println("one=======》:未结束");
nextStep(condition);
}
}
}
三、子类实现2
/**
* 子类实现方法二
*
* @author LIUJIANJIAN
* @date 2021年4月15日10:56:19$
*/
public class TwoHandler extends BaseHandler {
@Override
public void resovle(String condition) {
if(condition.equals("two")){
System.out.println("two=======》:结束");
stopStep();
}else{
System.out.println("two=======》:未结束");
nextStep(condition);
}
}
}
四、子类实现3
/**
* 子类实现方法三
*
* @author LIUJIANJIAN
* @date 2021年4月15日10:56:19$
*/
public class ThreeHandler extends BaseHandler {
@Override
public void resovle(String condition) {
if(condition.equals("three")){
System.out.println("three=======》:结束");
stopStep();
}else{
System.out.println("three=======》:未结束");
nextStep(condition);
}
}
}
五、执行示例
OneHandler oneHandler=new OneHandler();
oneHandler.nextHandler(new TwoHandler()).nextHandler(new ThreeHandler());
oneHandler.resovle(“three”);