美文网首页
责任链实现串行业务校验

责任链实现串行业务校验

作者: 杨殿生 | 来源:发表于2019-02-25 11:18 被阅读0次

情景
之前实现串行校验业务不能实现多分支串行
问题
它们采用的队列的方式,队列为全局共享,串行任务只能在单线程中实现,并且调用之前都要清空队列
解决
使用责任链模式,在调用业务前实现校验,不符合条件跳转处理分支,符合条件进入下一个校验

代码如下

/**
 * 所有校验类都要继承此类,总体处理链上每个校验对象
 */
public abstract class ProcessObject {
    private ProcessObject successor;

    public void setSuccessor(ProcessObject successor){
        this.successor = successor;
    }
    abstract protected boolean handleWork(Activity activity);

    public boolean handle(Activity activity){
        boolean flag = handleWork(activity);
        if (flag && successor != null){
            flag = successor.handle(activity);
        }
        return flag;
    }
}

检测串行是否可执行

/**
 * 校验登录
 */
public class CheckLogin extends ProcessObject{
    @Override
    protected boolean handleWork(Activity activity) {
        boolean flag = isLogin();
        if (!flag){
            //登录页面
        }
        //flag返回false检测失败,flag返回true检测成功进入下一个检测
        return flag;
    }
}

处理最后环节带有回调代码

/**
 * 处理带有回调类型
 */
public class ProcessCallback extends ProcessObject{

    public interface Callback{
        void call();
    }

    private Callback mCallback;

    public ProcessCallback(Callback callback){
        mCallback = callback;
    }

    @Override
    protected boolean handleWork(Activity activity) {
        if (mCallback != null){
            mCallback.call();
        }
        return true;
    }
}

相关文章

  • 责任链实现串行业务校验

    情景之前实现串行校验业务不能实现多分支串行问题它们采用的队列的方式,队列为全局共享,串行任务只能在单线程中实现,并...

  • Java业务校验工具实现(续集)

    一、背景 在前面的文章分享了一篇自已关于Java业务校验工具的实现Java业务校验工具实现,后面本着“不要重复造轮...

  • Java设计模式之责任链模式

    一、责任链模式的定义二、责任链模式的使用场景三、责任链模式UML类图四、责任链模式具体实例五、责任链模式代码实现 ...

  • httprunner自定义校验器(validate)整理

    因为httprunner内置的校验器无法满足所有业务需求,自定义校验器使用hook机制实现。将需要的校验函数放置到...

  • Java业务校验工具实现

    一、背景 在我们日常接口开发过程中,可能要面对一些稍微复杂一些的业务逻辑代码的编写,在执行真正的业务逻辑前,往往要...

  • spring-boot-validator使用汇总

    在写业务代码时,对参数的校验必不可少,基于Hibernate的Validator,可以非常便捷的实现参数校验。本文...

  • netty事件处理链Pipeline源码解析

    Pipeline 设计模式中有一种设计模式叫做责任链模式,netty pipeline就是责任链模式的一种实现,链...

  • 责任链模式与 OkHttp

    什么是责任链模式 OkHttp中责任链模式的实现 一、什么是责任链模式 使多个对象都有机会处理请求,从而避免了请求...

  • 周报丨Insight Chain(INB)公链&生态周报(201

    摘要:INB钱包完成专属二维码功能。 ▶公链◀ 一、INB公链 1.实现并优化业务数据上链数据结构。 2.实现业务...

  • 责任链模式

    抽象责任链处理者 抽象责任链处理者实现类 请求抽象类或接口 请求抽象类或接口实现类 场景使用

网友评论

      本文标题:责任链实现串行业务校验

      本文链接:https://www.haomeiwen.com/subject/xquwyqtx.html