首页 > 解决方案 > 域对象中的集合属性 - 何时使用?

问题描述

当涉及到一对多关系时,我很难为域类建模。

大多数搜索结果都专门讨论 DDD 和所谓的聚合根。例如带有订单项目的 Order 类。

在我的具体场景中,我有一个“报告”类,它可以引用其他域对象。属性“参考”是问题:

{
  "Id": "someReportId",
  "References":
  [
    {
      "ObjectType": "Machine",
      "ObjectId": "someMachineId"
    },
    {
      "ObjectType": "Address",
      "ObjectId": "someAddressId"
    }
  ],
  "Answers": 
  {
    "question1": 42,
    "question2": "some answer"
  }
}

对我来说,将“引用”建模为域对象的属性是有意义的。我的 API 的第一个使用者对此没有任何问题。

然而,第二个消费者需要单独保存和删除每个“参考”。我的 CRUD 服务只允许您保存或删除整个“报告”对象。

出于这个原因,我删除了该属性并将其移至单独的服务中。但是当我可以使用集合属性时,恐怕我看不到这条线。有一些经验法则吗?

标签: oop

解决方案


推荐阅读