• 周六. 7 月 13th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

设计模式-责任链示例

King Wang

1 月 5, 2022

一、抽象基类

/**
 * 责任链抽象基类
 * 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”);

发表回复