gpt4 book ai didi

domain-driven-design - DDD - 构建存储库

转载 作者:行者123 更新时间:2023-12-01 02:53:09 26 4
gpt4 key购买 nike

如果我有一个专为获取我的聚合根(由 Eric Evans DDD 定义)而设计的存储库,例如将 OrderLine 对象作为子对象的订单实体(根聚合)。

在某些情况下,我只想检索顶级对象,即没有 OrderLines 的 Order,而在其他情况下,我想带回更多,可能降低 2 个级别等,即 Order 和关联的 OrderLines。

Order/OrderLine 场景是一个简单的示例,但如果我的聚合根比这更深,可能会下降 3 或 4 个级别。

将其构建到存储库中的最佳/公认方式是什么(使用急切加载)?

最佳答案

Udi Dahan 在 TechEd 2008 上谈到了 Intentional Interfaces。在他的演讲中,他谈到了如何有意地从存储库中获取实体。你可以看他的presentationslides .

背后的想法是您根据要完成的任务来获取实体。例如,如果您要完成订单,则创建接口(interface) ICompleteOrderComplete方法和 map 特定FetchingStrategy给它。然后你可以使用类似 Repository.Find<ICompleteOrder>(orderIdentity)并按照您在 FetchingStrategy 中指定的方式获取此实体.

关于domain-driven-design - DDD - 构建存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com