【问题标题】:Correct size of DDD aggregate in java project (spring boot)java项目中DDD聚合的正确大小(spring boot)
【发布时间】:2020-07-12 20:27:10
【问题描述】:

我正在设计网络象棋游戏中的模块,有时我会感到困惑。

我已经分离了几个模块(聚合):

  1. 个人资料(id、姓名、照片、isActive)
  2. 排名(id、值、排名变化列表(日期、排名差异、对手 id))
  3. 购买(id、钱、购买位置列表(id、shopItemType、日期))

看起来不错,因为这些聚合体很小,但看起来有点人为。 排名和购买与 Profile 是一对一的。所有这三个集合似乎是一个集合。如果我按 id 删除个人资料,我也必须删除排名和购买。

如果我创建了一个汇总(个人资料数据、排名数据和购买数据),那就太大了(SRP ??)。

你们能给我一些建议吗?

【问题讨论】:

    标签: java spring domain-driven-design aggregates


    【解决方案1】:

    您的聚合不是。它们只是实体(和/或值对象)。

    "A DDD aggregate is a cluster of domain objects that can be treated as a single unit"。马丁·福勒。因此,聚合必须包含多个实体或具有根实体的值对象。

    因此,您可以创建一个包含排名和购买实体的聚合配置文件。

    这完全取决于您的聚合的商业意识。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多