在域对象中使用DAO是否正确?

时间:2010-11-10 17:10:25

标签: domain-driven-design

我在article中发现了以下内容:“DAO类永远不应该直接从客户端调用(服务和其他消费者类)。客户端应该始终调用域对象,而域对象又应调用DAO将数据保存到数据存储中。“。

这不是我在做DDD之前看到的事情。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

  

“永远不应该调用DAO类   直接来自客户(服务和   其他消费者类)。客户   应始终调用域对象   反过来应该调用DAO   用于将数据保存到数据中   商店。 “

不,我认为这是非常错误的。

域对象可能不应该引用存储库。

如果域对象需要与其他域对象协作,它可以引发域事件或将其他域对象作为方法的参数(在这种情况下,客户端/调用者通过存储库检索所有必需的域对象)。

答案 1 :(得分:1)

你从文章中引用的最后一句可以更清楚地写出来。我怀疑作者的意思(重点是我添加的文字):

  

客户端应该始终调用域对象,它应该调用存储库,然后调用DAO来将数据保存到数据存储。