关于校验规则(Validation Rule)和业务规则(Bussiness Rule)的思考

       企业应用中常常涉及到校验规则和业务规则。泛而言之,所有的规则都可以称之为业务规则,但是有必要在其中区分出校验规则这个概念。从业务规则的作用范围来看,一些业务规则是关于单个领域对象自身属性的,往往是简单的、断言式的,目的是保证领域对象的正确性;而另外一些业务规则是关于多个领域对象协作的,往往包含比较复杂的判断逻辑,目的是保证业务逻辑的正确性。为便于描述,我把第一类称为校验规则,第二类称成为业务规则。

        校验规则的例子有:
        
                一张订单的“客户姓名”不能为空
                一张发票的“金额”必须大于零
                订单上的“签订日期”必须在“发货日期”之前
        
        业务规则的例子有:

                一张订单的状态必须是“签定”时,才能进行更新库存的操作
                一张订单的“金额”必须大于1000元的时候才能进行优惠
                一张订单的“金额”大于2000元时,就要开两张发票

        区分出这两个概念之后,就比较容易确定在企业应用中实施这些规则的地方。


                                表示层           <<-- 校验规则
                                    |
                                    |
                                业务层           <<-- 业务规则
                                    |
                                    |
                            数据访问层       <<--  校验规则

        在表示层实施校验规则的目的有两个,一是能够在校验后给用户一个反馈,使之有改正输入错误的机会,二是在把领域对象交给业务层操作之前保证其正确性。
        在业务层实施业务规则是为了完成业务逻辑。
        在数据访问层实施校验规则是在持久化之前保证领域对象的正确性。

        如果能够把对领域对象的校验工作分离出来,做成一种基础性的服务,以一种统一方式进行实施,就可以让开发者专注于实现业务规则,提高开发效率,这个问题还需要进一步考虑。



posted on 2006-01-01 12:00 horily 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/horily/archive/2006/01/01/309337.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值