服务和存储库在DDD中如何相互关联?我的意思是说,在过去的两天里,我一直在阅读DDD,到处都是,总是有一个Service层,总是有一个Repository层。这些如何区分或互相补充?
从我读过的内容中,不是存储库负责委托应用程序和数据之间的交互?
那么,即使Repository可能已经实现了所需的方法,如果它必须实现Repository与数据交互,那么Service层需要什么呢?
我会感谢有关这个问题的启发。
附:不知道这是否会有所帮助,但我正在使用一个ASP.NET MVC 2应用程序,我正在尝试实现Repository模式。我刚刚完成了依赖注入模式(第一次)…
UPDATE
好的,有很多答案,我觉得我明白了什么区别。所以,要检查(纠正我,如果我错了):
>资源库层仅与数据库中的单个对象或ORM,IEmployeeRepository – >雇员。
>服务层在Repository返回的对象中封装了更复杂的功能,一个或多个。
那么我有一个小问题。创建抽象对象以被发送到我的观点被认为是不好的做法?例如,一个AEmployee(A为抽象,因为我的意思是接口),其中包含Employee和X或X的属性?
其实呢再多一点了。如果一个服务层可以被认为是“调整”的应用程序,它需要用一个接口来实现?
诚然,存储库与数据(即sql,Webservice等)一起工作,但这是唯一的工作。 CRUD操作,没有更多。没有基于存储过程的业务逻辑的地方。
服务(或业务逻辑层)提供功能。如何填写业务请求(即计算工资),您需要做什么。
哦,这是一个很好的DDD书:
http://www.infoq.com/minibooks/domain-driven-design-quickly