如果你有一个域对象,并且你想做一些有用的和对该域对象的核心责任的事情,比如确保它是有效的,你有时需要访问相关对象的状态来执行这个验证。
如何避免需要调用存储库或数据访问层的域对象?由于性能原因,您不能总是遍历集合关系,即使使用延迟加载也是如此,并且您经常希望在域对象中执行查询。您可以将存储库实现依赖注入到域中,但不是真正纯粹的并且使测试复杂化。
我总是放松一些事情,并允许使用 DI 从域访问存储库。我没有看到如何在一个复杂的应用程序中拥有一个“纯”域层的明确示例,它也不是贫血的,并且有一个服务/应用程序层来做所有的工作,并弄乱应该是域对象的内部结构。