DDD书中不变量问题

09-01-16 yongbuyanbai
在DDD书籍中P92页提供的例子中,定单和定单项之间是一种聚合关系,并且存在业务上的不变量,保证定单子项的总和不大于定单的总价钱.并将商品的价钱与定单子项的价钱分离,实现商品价格的变化不会影响定单子项的变化,但是书中我没有看到关于总和的不变量约束是如何控制的,如果对于多个用户操作同一张定单中的不同项的时候,仍然无法保证不变量.书中是通过数据库的记录锁定来做的吧,那么对于聚合中的聚合根就是定单,外界是通过定单来查找定单项的,那么我认为应该对定单项使用锁,但不是利用数据库的锁,因为这个不变量是业务规则提供的,所以应该采用synchronized锁定或者是JDK1.5的高性能锁在定单子项中进行设置!不知道这样理解是否正确

问题二:

如果利用数据库锁如何来保证这种不变量的约束?比如两个人来访问同一个定单中的不同子项,请给予指点!!

猜你喜欢