验证规则和业务规则之间有什么区别?

时间:2011-07-08 22:37:45

标签: terminology business-logic

验证规则和业务规则之间有什么区别?

根据我的理解,'如果业务对象/对象的状态不符合预期,则抛出错误消息'是验证规则,'当业务对象/对象的状态相等或不相等时某事,然后改变一些业务对象/对象的状态[或采取一些行动/事件但不仅仅是抛出错误]'是一个商业规则。

验证可以是UI验证 - 验证UI字段或应用程序验证的值 - 验证业务对象状态。

我不确定我的理解是否正确。在我的项目中,我们有一个验证框架,其中一个简单的验证调用使业务对象对某些东西进行验证,一个错误收集器收集所有错误。错误显示在屏幕上。

除此之外,我们还有如上所述属于第二类的规则,即检查业务对象/对象状态并采取一些操作,例如更改另一个业务对象的状态。我试图找出使用某个框架[不是验证框架]或规则引擎来实现这些规则的策略。

请您帮助我理解上述两种规则之间的区别,如果有任何实施策略/建议,这将有所帮助。

4 个答案:

答案 0 :(得分:7)

验证是检查输入的值对于其字段的上下文是否合法(从技术角度来看),例如:5是否为Age(vs -5)?可接受的数值,而-5是可接受的以温度为例。

业务规则更多的是商业视角。检查业务的策略和过程是否可接受值(通过验证)。例如。被允许注册的人必须是居民,并且年满18岁或以上。等等。业务规则可以检查一个(或多个)字段值,并且可以查询存储在数据库中的数据和/或进行一些计算以确保值传递业务规则。 / p>

因此,对于hanna上面发布的示例,值15应该通过字段验证(因为它是Age的有效值),但它不会通过业务规则检查已婚人员的年龄必须> 15。

答案 1 :(得分:6)

总之;验证规则确定基本有效性; “这是一个有效的电子邮件地址吗?”业务规则确定如何处理有效数据; “我可以将用户的确认电子邮件设置为提交的值吗?”业务规则可以迁移到验证逻辑;但通常情况下,业务规则引擎不会进行验证。

答案 2 :(得分:3)

验证通常是指查询数据库以验证它们不需要的规则。例如最小密码长度。 业务规则通常需要数据库查询来进行验证。例如,您无法提取超过帐户余额的款项。这是一个商业规则。 因此,例如,在申请中硬编码的学校注册的最低可接受年龄是验证规则。

答案 3 :(得分:1)

业务规则,从其名称来看,它是从业务点视图进行的数据检查,例如,婚姻状况不能是已婚和#34;而且年龄小于15岁的人,基本上是从企业到企业的规则。

验证,它通常与用户界面相关,可以在业务上更常见,并且可以通过常识推导出来,例如,电子邮件格式应该具有特定的表单,或者如果有开始日期和结束日期,插入的结束日期应大于开始日期中插入的日期。