【发布时间】:2012-03-15 13:16:45
【问题描述】:
哲学 DDD 问题在这里...
我在这里看到了很多 Entity 与 Value Object 的讨论,但我的情况略有不同。如果之前已经报道过,请见谅。
我目前在金融领域工作。我们有资金(对冲品种)。这些基金通常投资于其他基金。这导致了一种树状结构,顶部有一个基金将它们锚定在一起。
显然,基金是一个实体(Aggregate Root,甚至)。交易和头寸之类的东西很可能是价值对象。
我的问题是:树结构本身是否应该被视为聚合根? 一些想法:
- 树结构通过存储组件和它们彼此的位置存储在数据库中。我们目前没有编码树的概念。域很弱。
- 树结构没有“唯一性”或标识符。
- 在许多地方都需要逻辑来“遍历”树以查找彼此之间的关系,要么自上而下,要么有时自下而上。这个逻辑需要封装在某个地方。
- 有很多逻辑可以计算杠杆率、曝光率等...并将其汇总到树上。
将 Fund 视为 Composite Fund 对象是否足够好,即内置 Invariants 的聚合根?或者在这种情况下更正式的树结构有用吗?
【问题讨论】:
-
附言。我喜欢复合材料。您可以通过创建静态 Expression
> 来提供到实体框架查询的灵活映射来做一些非常酷的事情(这意味着当您只需要一个列表项时,您的查询的选择大小会大大减少)。然后,您还可以将 2 个单独的列表从单独的 repo/服务传递到复合表达式,这使得每个实体都有一个简单的小型 repo 非常值得,因为您很少处理整个实体树......但这是另一个故事/帖子和一种网络技术。
标签: repository domain-driven-design entity