【问题标题】:Aggregations and the DDD聚合和 DDD
【发布时间】:2017-05-25 09:39:09
【问题描述】:

我正在开发一个应用 DDD 原则的项目,我创建了一个类聚合 (Account),它将包含类 (Agency) 和 (Agent),因为 (Account) 在数据库中有表。我的问题是这样的:

我需要为我的每个实体(Account、Agent 和 Agency)创建一个 Repository 类和一个 Service 类,或者我应该创建 AccountRepository 并在其中执行 3 个类的插入和搜索?

【问题讨论】:

    标签: c# domain-driven-design aggregation


    【解决方案1】:

    只有聚合根应该有存储库,但你必须想出正确的聚合。

    在不了解您的域的情况下,我觉得 AgencyAgent 是它们自己的聚合根,因此它们各自都有自己的存储库,Account 会通过身份引用它们。

    设计聚合是最复杂的建模任务,可以就该主题编写整本书。我强烈建议您阅读 Vaughn Vernon 的 Effective Aggregate Design

    【讨论】:

    • 很好的答案和很好的书。每当我与任何人谈论 DDD 时,我都无法充分强调同样的情绪。已经看到很多人因为将聚合设计视为数据建模而失败,即单一的前期工作会生成人们不愿意更改的僵化领域模型。整个领域应该从用例中有机地发展出来,人们需要从理解它/将/作为持续发现过程的一部分而改变的开始。
    • 感谢您的回答。我要读那本书,我认为弄清楚这些概念非常重要
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多