【问题标题】:How to design the aggregate root?如何设计聚合根?
【发布时间】:2021-03-17 10:14:02
【问题描述】:

我想用 DDD 重构我的项目。有银行卡、渠道、用户三个对象。有如下关系:

  1. 一张银行卡可以多渠道签约。
  2. 一个用户可以绑定多张银行卡。
  3. 一张银行卡可以绑定多个用户。

现在项目有银行卡表、银行卡与渠道合约表、银行卡与用户关系表三个表。 我想将银行卡设计为实体,将用户和渠道设计为价值对象(用户实体和渠道实体在其他域中维护)。 那么我应该如何设计聚合根。将银行卡作为聚合根,将频道列表、用户列表作为聚合根的属性,或者将银行卡、银行卡签名合同、银行卡-用户关系设计为聚合根?

【问题讨论】:

    标签: design-patterns domain-driven-design entity aggregateroot


    【解决方案1】:

    如果您只有一个实体 (bankcard) 和两个值对象,我会说将实体建模为聚合根并将两个值对象建模为它的属性听起来很自然。

    【讨论】:

    • 谢谢您的回答。我需要处理用户的绑定状态(如预绑定、已绑定、Unbundling),和频道的签到状态一样。那么如何在 Aggregate Root 中显示这些状态呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多