【发布时间】:2012-10-02 12:33:00
【问题描述】:
可能是个愚蠢的问题:
域实体应该完全不知道持久层,因此应该只通过存储库与它通信,因此域实体 应该是 Persistence Ignorant。
将域层与持久层完全解耦的常用方法是使用存储库,其中存在存储库接口 域组件中,而存储库实现存在于持久层组件 PLA中。
但我对术语有点困惑。也就是说,我知道将 Repository interface 放在 PLA 中是一个坏主意,至少有两个原因,第一个原因是这会强制 Domain assembly持有对 PLA 的引用,并且现在 Repository 接口 是根据较低级别的组件定义的(即现在 持久层 规定了存储库接口)。但是,如果出于某种原因我们确实将 Repository interface 放在 PLA 中,那么:
a) 我们还能说域层(即它的实体)是Persistent Ignorant吗?我假设是的,因为 域实体 仍然完全不知道 持久层?!
b) 在这种情况下,正确的表达方式是“域组件现在依赖于 PLA”或者“域层现在依赖于持久层" 还是...?
谢谢
【问题讨论】:
标签: design-patterns domain-driven-design repository-pattern