gpt4 book ai didi

domain-driven-design - 持久性应该是域对象的责任吗? (你能评论这篇文章吗?)

转载 作者:行者123 更新时间:2023-12-01 12:01:03 24 4
gpt4 key购买 nike

我读了一篇 article .

在源代码中,实体对象正在执行所有的 CRUD 操作。这意味着实体对象直接从方法调用存储库。

评论表明:

Persistence is absolutely the resposibility of a domain object

这是正确的吗?

最佳答案

如果您阅读评论,您会看到作者解释说这篇文章主要是为了演示 DI 技术,而不是为了促进良好的 DDD 设计。评论中讨论的源代码有几个很好的问题。因此,您在将其用作引用之前最好三思。

为了回答您的问题,通常不建议让实体使用存储库接口(interface),尤其是持久性实现。我会将此与“goto”用法相关联 - 这可能是需要的,但您通常不会期望在代码中看到它。

我还可以补充一点,如果您不将域对象绑定(bind)到存储库,则使用域对象会容易得多。例如,您可以毫不费力地构建 FitNesse(验收)测试,而不会弄乱数据库或处理实体对存储库的调用。单独使用域对象越容易越好。

关于domain-driven-design - 持久性应该是域对象的责任吗? (你能评论这篇文章吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493316/

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