业务校验模型

因果事件校验模型

传统的交互逻辑校验一般使用Validate对象,内置了一些业务规则逻辑,开发者根据实际业务场景,业务逻辑层层判断后,单独返回验证结果来处理;当项目复杂度上升时,整个校验链条会变的杂乱无序,基于数据驱动框架(Vue,React)等的数据状态流会变得无法追溯每个对象改变后发生的关联事件;

案例:

// 校验投保人
validForm() {
   let self = this
   self.validResult = true
   if (self.validResult) {
       self.validName()
   }
   if (self.validResult) {
       self.validCertiType()
   }
   if (self.validResult) {
       self.validCertiNo()
   }
   if (self.validResult) {
       self.validBirth()
   }
   if (self.validResult) {
       self.validSex()
   }
   if (self.validResult) {
       self.validPhone()
   }
},

因果事件链


foo

SchemaModel:

  • SchemaModel逻辑对象,封装了统一的Validator规则,通过传入相关匹配参数来做逻辑验证,理论上每一个事件链条的因果关系中,都要配置一个Model,简化整体复杂交互关联业务中的验证模型。

Validator:

  • Validator校验逻辑规则函数工具,提供相关的校验事件API,规则API等
    • String
    • Number
    • Date
    • RegExp

因果事件链

  • 基于实际业务逻辑关系,建立一个事件条件下,所有需要处理的因果关系,根据每个因果的返回值(Y/N),汇总所有事件的(真/假)结果集,得出该事件的因果结论

基于数据驱动

  • 和业务模型解耦,只处理数据变更下,因果关系的成立与否