验证规则和业务规则有什么区别?
根据我的理解,“如果一个或多个业务对象的状态不符合预期,则抛出错误消息”是一个验证规则,而“当一个或多个业务对象的状态等于或不等于某个值时,然后更改某些业务对象的状态(或执行某些操作/事件,而不仅仅是抛出错误)是业务规则。
验证可以是UI验证-验证UI字段的值或应用程序验证-验证业务对象状态。
我不确定上面的理解是否正确。在我的项目中,我们有一个验证框架,在该框架中,一个简单的validate调用将使用业务对象对某事物进行验证,并使用一个错误收集器收集所有错误。错误将显示在屏幕后标上。
除此之外,如上所述,我们还有属于第二类的规则,即检查一个或多个业务对象的状态并采取某些操作,例如更改另一个业务对象的状态。我正在尝试找出使用某些框架(而非验证框架)或规则引擎来实现此类规则的策略。
您能帮我理解上述两种规则之间的区别吗?如果有任何实现策略/建议,那将是有帮助的。
最佳答案
验证是检查输入的值对于其字段的上下文是否合法(从技术角度来看),例如:对于年龄(vs -5)?是可接受的数字值为5,而对于温度而言,可接受-5作为温度例子。
业务规则更多地是从业务角度来看的。这是一项检查(通过验证的值)是否可以被企业的政策和程序接受。例如。被允许登记的人必须是居民,并且年满18岁或以上。业务规则可能会检查一个(或多个)字段值,并且可能会查询存储在数据库中的数据和/或进行一些计算以确保值通过业务规则。
因此,对于上面由汉娜(Hanna)发布的示例,值15应该通过字段验证(因为它是“年龄”的有效值),但不会通过业务规则检查,即已婚者的年龄必须大于15。
关于terminology - 验证规则和业务规则有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6631280/