可能是一个愚蠢的问题:
域实体应该完全不知道Persistence 层,因此应该只通过Repositories与其通信,因此域实体应该是Persistence Ignorant。
将域层与持久层完全解耦的常用方法是使用存储库,其中存储库接口位于域组件中,而存储库实现存在于持久层组件 PLA中。
但我对术语有点困惑。也就是说,我知道将Repository 接口放在PLA中是一个坏主意,至少有两个原因,第一个原因是这会强制Domain 程序集持有对PLA的引用,而且现在Repository 接口是根据较低级别的组件定义的(即现在持久层决定了存储库接口的定义)。但是如果出于某种原因我们确实将Repository 接口放入PLA中,那么:
a) 我们还能说域层(即它的实体)是持久无知的吗?我假设是的,因为域实体仍然完全不知道 持久层?!
b) 在这种情况下,正确的表达方式是“域组件现在依赖于PLA ”或者“域层现在依赖于持久层”或者......?
谢谢