基于来自领域驱动设计了以下定义:抢断复杂性软件的核心,你如何坚持/恢复DDD实体的聚合根?
聚集是: 被视为一个单元,用于数据更改的目的相关联的对象的集群。外部引用仅限于指定为根的AGGREGATE的一个成员。一组一致性规则适用于AGGREGATE的边界内。
我不认为聚合根应该持有对存储库的引用。由于聚合根是唯一应该保持对其实体和聚合的引用的聚合根,它们应该是私有的。
我的存储库如何保存并恢复此私有数据?
编辑:
让我们以经典的订单,OrderLines例子。
订单是汇总根。
它的线条是实体。
由于聚合根(顺序)是唯一允许持有对其实体(顺序行)的引用的对象,所以我不明白我将如何从存储库中持久化命令行。
你用什么作为数据访问策略? ORM,CQRS,...? – 2011-02-28 19:57:06
嗯,可能是ORM,但我不确定。我是DDD的新手,我的顾虑更多的是这样一个事实,即如果聚合根不公开它的实体,我将无法坚持它们。 – Martin 2011-02-28 20:24:20
乍看之下,您的问题似乎是在询问存储库和语言的具体实现。你可以说得更详细点吗?例如,你使用的是.NET还是Java或其他?您是否打算在RoR中使用Hibernate或Entity Framework或内置的ORM? – 2011-08-10 03:27:06