关于逻辑较验的总结

关于校验,以往的做法一般是通过if分支做判断,代码容易冗余。本文采用的方法是先定义原子逻辑较验方法,然后将其组装到list列表中,统一顺序执行,如果有一个不满足条件则跳出判断逻辑


标红的表示:1.获取校验逻辑 2.执行校验过程,得到结果

上面的代码为具体的一个较验写法。validatorList 为一个校验列表

当执行validtor.validate();方法时,首先会将需要较验的一些“原子较验逻辑”封装成WebCheckValidtor对象,放入到validatorList 集合中,执行通用方法execute(validatorList);

该方法有以下关键步骤:

1.getValidatorResult()方法会定义一个对象存入 线程的附属变量中,并将对象(内存中的空间地址)返回给上文中的execute方法中的result 变量

2.for循环执行具体的原子逻辑,以下面代码为例(检查当前member是否存在)


通过getValidatorResult()方法获取当前的线程的附属变量,如果验证失败,则将失败信息存入到ret中,(ret与上文的result指向同一个堆空间),此时的返回值没有什么意义。

然后 if (!result.isSuccess()) break; 对当前执行完毕的校验结果作判断,如果为false则退出循环,清空线程变量的内容,返回结果对象,

直到Action类,

如果失败,则走失败分支,记录错误信息;否则执行正常操作。

你可能感兴趣的:(总结)