代码之家  ›  专栏  ›  技术社区  ›  alexn

存储库和服务之间的区别?

  •  70
  • alexn  · 技术社区  · 15 年前

    存储库和服务有什么区别?我好像不明白。

    我说的是通过数据访问层进行数据访问,通常使用Linq to SQL。

    我经常看到具有简单CRUD方法的存储库,以及具有更多业务特定方法的服务。

    我们可以采取 this 以博客文章为例。如果您查看底部的接口(图像),他有两个存储库和两个服务。怎么知道把什么放在哪里?

    正如我所说,存储库似乎更适合像crud一样的操作和服务,更面向业务。

    谢谢

    3 回复  |  直到 7 年前
        1
  •  60
  •   jlembke    15 年前

    存储库本质上是 坚持不懈 它使用集合样式语义(添加、更新、删除)提供对数据/对象的访问。这是一种将数据/对象与应用程序其余部分分离的方法。

    服务提供操作应用程序所需的协调或其他“服务”。它们非常不同,因为服务通常不知道如何从持久性中访问数据,而存储库通常 只有 访问您可能拥有的任何服务的数据/对象。

        2
  •  102
  •   David    15 年前

    存储库是存储数据的地方。服务是操作数据的工具。

    在现实情况比较中,如果您的钱存储在银行的金库中,那么金库就是存储库。存款、取款等的出纳员是服务人员。

        3
  •  12
  •   KLE rslite    15 年前

    我会说,作为第一次尝试,在一般意义上(直到你给出更多的上下文,如果你有一个):

    • 知识库 放置一些全局对象的位置,稍后使用。
    • 服务 业务逻辑代码是否明确(与表示层和数据库层理想分离?)