码迷,mamicode.com
首页 > 其他好文 > 详细

DDD学习--知识点汇总

时间:2015-01-22 17:08:30      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

1.聚合是由实体和值对象组成,一个聚合有一个聚合根,聚合根是实体,并且是只读的实体,因为聚合的子实体是可以被临时传递到外部的,绕过聚合根修改了聚合内的东西,这样就无法确保聚合内的不变性了,我们要避免任何可能从外部修改聚合的行为发生,所有修改聚合的行为必须通过聚合根来实现。

2.聚合有不变性约束规则。

3.聚合的两条推荐准则:聚合不要设计的过大,过大的聚合很难确保不变性,从而很难确保数据的强一致性;聚合与聚合之间不要通过引用的方式来关联,而应该通过ID关联。

4.聚合内的非根的Entity以及Value Object之间不要相互引用,聚合内的所有Child可以对聚合根持有引用,如果一个子实体需要和另外一个子实体交互,则应该通过聚合根完成。

5.仓储应理解为一个在内存中维护一系列聚合根的集合,一个聚合根配备一个仓储。

6.仓储提供的接口应该总是接受聚合根或返回聚合根,不能返回聚合内的其他Entity或Value Object。

7.仓储提供的所有接口应该仅为领域模型使用;基本的仓储接口只需要三个:Add,Remove,GetById,其他可由业务需要而定。

8.如果一个操作仅由一个聚合根就可以完成,那么直接调用该聚合根完成即可

9.领域服务依赖仓储时,工厂依赖于领域服务或仓储时,都应该采用构造函数注入的方式,这样可以避免领域模型中不会出现DependencyResolver.Resolve<T>()这样的语句。

DDD学习--知识点汇总

标签:

原文地址:http://www.cnblogs.com/ice-baili/p/4241643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!