实体和计算的属性

时间:2008-12-16 14:57:50

标签: orm domain-driven-design

实施以下内容的最佳做法是什么:

  1. 我们有一个班级OrderOrderItem作为亲子。
  2. 班级OrderItem提供了属性Cost
  3. 在OrdersList表单中,我们必须看到MaxCost column = max(cost) 来自Items collection
  4. 我发现这里只有一个有用的解决方案,它不会破坏DDD概念:向类MaxCost添加常用属性Order,并在每次项目列表更新时更新它。

    还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

可能,但你必须问自己“为什么?”。从域名的角度来看,如果你反复重新计算,它是否“关心”?或者您是否让程序员域进入您的问题域?

另一件事 - 考虑将“物品的最大成本”作为OrderItems集合的一部分,并隐藏你如何从系统的其余部分获取它。