2009-09-17 73 views
45

存储库和服务之间有什么区别?我似乎没有把握。存储库和服务之间的区别?

我正在谈论通过数据访问层进行数据访问,通常使用linq to sql。

很多时候我会看到具有简单CRUD方法的存储库以及具有更多业务特定方法的服务。

我们可以拿this博文作为例子。如果您查看底部的接口(图像),他有两个存储库和两个服务。人们如何知道要放哪里?

正如我所说,存储库似乎更像是类似于CRUD的操作和服务更多面向业务。

感谢

+0

你可以calarify?在什么情况下?与大多数词语一样,这些词语正用于的背景有助于定义意义。 – David 2009-09-17 17:02:20

+2

注:我不是在谈论Web服务或这里的东西。我正在谈论通过数据层访问数据。 – alexn 2009-09-17 17:05:14

回答

45

库是本质上是持久门面使用收集风格的语义(添加,更新,删除)来提供对数据/对象的访问。这是一种解耦存储数据/对象与应用程序其余部分的方式。

服务提供协调或其他“服务”,这些服务是操作您的应用程序所必需的。它们的区别很大,服务通常不知道如何从持久性中访问数据,并且存储库通常仅为访问您可能拥有的任何服务的数据/对象。

+5

我想说一个存储库是一种用于数据访问的服务。 – 2009-09-17 18:57:34

+1

这是一个很好的定义,几乎所有我们编写的东西都是某个级别的“服务”,但是它丢失了一个存储库应该是*对象集合的基本意图。 – jlembke 2009-09-17 22:02:55

+2

如果您对单元测试感兴趣,可以更清楚地将存储库视为最小化抽象,以尽量减少避免数据库所需的嘲讽。 – 2015-04-07 12:12:56

9

我想说的第一次尝试,在一般意义上的(除非您提供更多的背景下,如果你有一个):

  • 一个是你放置一些全局对象,以后使用。
  • 一个服务是一个业务逻辑代码,作出了明确(并从表现层理想的分离和数据库层?)
70

存储库是存储数据的地方。该服务是操纵数据的东西。

在现实世界的情况比较中,如果您的资金存储在银行的存储库中,则存储库就是存储库。存款,取款等的出纳员就是服务。

+2

感谢您的回答!简单而简洁。 – alexn 2009-09-17 17:34:27

+0

赞同上面的评论!以及现实世界的解释! – Kleigh 2016-06-13 14:26:23

相关问题