在领域驱动设计,似乎有很多的协议,任何单位不得直接访问存储库.
这是来自Eric Evans Domain Driven Design的书,还是来自其他地方?
对于它背后的推理,哪里有一些很好的解释?
编辑:澄清:我不是在谈论将数据访问分离到业务逻辑的单独层的经典OO实践 - 我在谈论DDD中的特定安排,实体不应该与数据对话访问层(即它们不应该包含对Repository对象的引用)
更新:我给了BacceSR赏金,因为他的回答似乎最接近,但我仍然对这个问题一无所知.如果它有这么重要的原则,肯定会在网上有一些关于它的好文章吗?
更新:2013年3月,关于这个问题的投票意味着人们对此很感兴趣,即使有很多答案,我仍然认为如果人们有这方面的想法,还有更多的空间.
oop domain-driven-design s#arp-architecture repository-pattern
我正在学习DDD,我在Infrastructure层有点丢失:
据我所知,"所有优秀的DDD应用程序"应该有4层:演示文稿,应用程序,域和基础架构.应使用存储库访问数据库.存储库接口应该位于域层和存储库实现中 - 在基础结构中(参考DDD:在哪里保留域接口,基础结构?).
应用程序,域和基础架构层应该/可能有服务(参考www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/21/services-in-domain-driven-design.aspx),例如基础架构层中的EmailService它发送电子邮件.
但是,在基础架构层内部,我们有存储库实现,用于访问数据库.那么,在这种情况下,存储库是数据库服务?基础结构服务和存储库之间有什么区别?
提前致谢!