首页 > 其他分享 >订单校验组件设计

订单校验组件设计

时间:2022-11-25 20:46:01浏览次数:49  
标签:校验 Rule 订单 Validator 具体 规则 组件 Configuration

主要关键类/接口介绍
Validator  校验器,定义的是一个具体的校验规则;
1.Rule 规则,是对一个具体规则的描述,包含校验具体的是哪个字段,用的什么校验器,校验错误的代码、错误描述信息等;
2.Configuration 配置,相当于是 Rule 的加载/定义器,一个类有哪些校验规则(Rule),通过 Configuration 来加载/配置,通过扩展 Configuration 可以实现从 DB,json 文件,Nacos 配置,自定义注解等等地方加载具体的规则配    置;
3.ConfigurationManager 配置管理器,Configuration 的总管,校验器接口不需要与具体的 Configuration 打交道,只需要从 ConfigurationManager 统一获取具体的校验规则即可。内部可实现一些缓存,定时刷新等逻辑;
4.Validate 客户端校验唯一入口类   Validator 介绍
Validator 具体的校验规则,只是规则的定义,不包含其他额外的信息,保持 Validator 的简单好处是,Validator 后续可以从任何地方来,可以基于注解、json文件、db等,而且 Validator 是可以重用的,也可以基于组合模式扩展出更多具体应用。
具体的一些实现扩展类
NotNullValidator
NotBlankValidator
PatternValidator
ExpressionValidator  // (**)这个应该是目前我们系统中主要使用的 1.SpelExpressionValidator // 基于 spring spel 表达式的校验(推荐使用这种,spring 标准的东西,可以支持类属性,属性的属性逐级访问都不是问题,spring security也都大量在使用,性能方面更有保障) CompositeValidator  // 组合模式的应用,几个小的校验器组合起来就是一个大的校验器。适用一个属性有多个校验规则,或者几个属性校验规则组合起来成为一个类的校验器
AbstractCustomValidator// 自定义扩展
比如:CountryAreaPostcodeValidator

Rule 介绍
Rule 是一个具体的规则的描述,相当于是一个 Validator 和具体要校验字段/属性的一个绑定,并且提供校验错误的代码、提示信息等;
Rule 通过绑定 Validator 不同的实现,可以对字段、 类进行所有需要的校验;
Configuration 介绍
Configuration 是一个具体的配置,一个类有哪些校验规则(List<Rule>)就是通过 Configuration 来进行配置;
通过扩展 Configuration 的实现,可以实现一个类的校验规则从 DB,json 文件,nacos 配置中心,自定义注解等等地方进行加载;
具体的一些实现扩展类
DBConfiguration
JsonConfiguration
....   ConfigurationManager 介绍
Configuration 的总管,入口的校验器不需要跟具体的 Configuration 打交道,只需从 ConfigurationManager 获取具体的校验规则即可;
ConfigurationManager 还可以实现一些具体的例如:缓存,自动刷新等等额外的功能    

 

标签:校验,Rule,订单,Validator,具体,规则,组件,Configuration
From: https://www.cnblogs.com/lufei-123/p/16926299.html

相关文章