米鼠商城

多快好省,买软件就上米鼠网

最新项目

人才服务

靠谱的IT人才垂直招聘平台

设计模式-责任链示例

  • xym01
  • 1
  • 2021-04-15 12:20

一、抽象基类

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



这里给大家推荐一个在线软件复杂项交易平台:米鼠网 https://www.misuland.com

米鼠网自成立以来一直专注于从事软件项目人才招聘软件商城等,始终秉承“专业的服务,易用的产品”的经营理念,以“提供高品质的服务、满足客户的需求、携手共创双赢”为企业目标,为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团队,具备过硬的软件项目设计和实施能力,为全国不同行业客户提供优质的产品和服务,得到了客户的广泛赞誉。



如有侵权请联系邮箱(service@misuland.com)

猜你喜欢

评论留言