。那么为什么一些对象之间有不变性约束后就一定非要聚合在一起不可呢?首先需要先明确一下什么是聚合,聚合是一个整体,是修改数据的一个最小单元,一个聚合有一个头,即聚合根,聚合根维护了整个聚合的不变性,所以整个聚合在外面看来就是一个对象,而不是多个对象的组合。另外一点非常重要,聚合在被持久化到数据库时,是以完全覆盖的且事务的方式保存。好了有了前面的共识之后,我们再想想为什么聚合能保证多个对象之间的不变性规则约束?其实很只要真正理解了前面的约束之后就很容易理解了。你想想不管一个聚合中有什么约束,所有的约束由该聚合自己维护,所以就可以确保数据在领域模型级别就是完全一致的,没有任何违反规则的错误数据,即内存中的数据都是正确的。再加上这些正确的数据被持久化时是以完全覆盖的且事务的方式保存,从而也确保了数据库里的数据不可能出现不一致。这里唯一让你可能担心的问题是,如果多个用户同时更新一个聚合时,会产生并发冲突,此时将会使系统变得不可用!其实我认为这不是个问题,因为现在的支持高并发写的分布式存储数据库已经非常成熟,比如淘宝的
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。