cho*_*obo 6 domain-driven-design ddd-repositories repository-pattern
存储库类应该进入哪一层?域名或基础设施?
我想这取决于你将如何依赖他们。
问题是 - 您是否允许自己使用域内部的存储库?
如果是这样 - 那么你就被迫把它们放进去。
我自己喜欢将它们放在域之外。所以 - 事物的典型生命周期看起来像这样 =>
UI => 控制器 => 从存储库检索聚合根 => 通过聚合根调用逻辑 => 如果创建了新的聚合根,请将其添加到存储库。
有时,控制器调用应用程序服务,除了检索根并调用其上的函数之外,还执行一些其他操作。但想法是相同的——域对持久性一无所知。
虽然(据我所知)将存储库放入域(或至少是它们的抽象)中没有任何问题,但它使您的域更加了解持久性。有时这可以解决问题,但一般来说 - 这肯定会让您的领域变得更加复杂。
使用对您来说更自然的方式,并随时准备改变您的方式。