`

关于Repository模式

    博客分类:
  • C#
阅读更多

Repository模式:

网上说Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。

 

使用该模式的最大好处就是将领域模型从客户代码和数据映射层之间解耦出来。

 

其实我们可以把它理解为DAL层,但又与DAL层有一定的区别,RepositoryDDD中的概念,强调Repository是受Domain驱动的,Repository中定义的功能要体现Domain的意图和约束,而DAL层更纯粹的就是提供数据访问的功能,并不严格受限于Business层。

 

使用Repository,隐含着一种意图倾向,就是 Domain需要什么我才提供什么,不该提供的功能就不要提供,一切都是以Domain的需求为核心;而使用DAL,其意图倾向在于我DAL层能使用的数据库访问操作提供给Business层,你Business要用哪个自己选。换一个Business也可以用我这个DAL,一切是以我DAL能提供什么操作为核心

 

这里再简单说说Core里的Service文件,它相对Repository是处理一些复杂一点的业务逻辑,而Repository所提供的功能是相对比较单一的,比如添加用户,Repository就是操作数据库保存操作,而Service则会先进行一系列的逻辑判断,是否存在该用户的,再调用Repository里的保存用户操作。

 

0
0
分享到:
评论

相关推荐

    MVC中使用Repository模式vs2013

    一、在MVC中开发的时候,避免在Controllers中直接访问数据,为了构建更加适应未来变化以及更加易于测试的MVC应用程序,应使用Repository模式。当你使用Repository模式时,你会创建一个独立的repository类,它包含了...

    Dapper结合Repository模式的应用

    Dapper结合Repository模式的应用,包括如何在数据访问层(DAL)使用Dapper组件。

    Repository模式与IOC的Autofac的完美融合数据操作展示实例

    Repository模式是一种设计模式,它将数据访问层的逻辑抽象出来,提供了一种统一的数据操作接口。在本项目中,Repository模式被用来隔离数据库操作,使得业务逻辑层与具体的数据存储方式解耦。这样做的好处是提高了...

    使用通用Repository模式的CRUD操作的MVC程序例子

    本示例以"使用通用Repository模式的CRUD操作的MVC程序"为主题,旨在介绍如何在ASP.NET MVC项目中利用Repository模式进行数据访问层的设计和实现,以简化数据库操作并提高代码的可维护性。 Repository模式是一种设计...

    使用LINQtoSQL采用Repository模式实现三层架构.pdf

    使用LINQtoSQL采用Repository模式实现三层架构.pdf

    Laravel开发-repository

    在Laravel框架中,Repository模式是一种设计模式,用于在业务逻辑层和数据访问层之间创建一个抽象层。这种模式的主要目的是提高代码的可测试性、可维护性和解耦度。"Laravel开发-repository CRCMS存储库扩展了...

    Repository实例源码v1.0

    Repository模式是一种设计模式,它为应用程序提供了一个统一的接口,用于访问各种数据存储。这个模式在.NET开发中广泛应用于解耦业务逻辑层和数据访问层,使得代码更易于测试和维护。在这个"Repository实例源码v1.0...

    10.1-Repository

    在.NET Core开发中,Repository模式是一种常见的设计模式,它为应用程序提供了一种抽象的数据访问层。这个"10.1-Repository"项目很可能是为了演示或教学如何在.NET Core环境中实现这种模式。让我们深入探讨一下...

    Repository

    标题"Repository"暗示我们将讨论的是关于Repository模式及其在Java开发中的应用。Repository模式的主要目标是提供一个抽象层,将数据存储的具体实现细节隐藏起来,让开发者可以像操作对象一样操作数据,而无需关心...

    Laravel开发-l5-repository

    在Laravel框架中,"Laravel开发-l5-repository"是一个关于使用Repository模式进行数据库操作的项目。Repository模式是设计模式的一种,它提供了一个抽象层,使得业务逻辑与数据访问层解耦,增强了代码的可测试性和可...

    Repository-UOW-Sample-master_C#_

    标题中的"Repository-UOW-Sample-master_C#"表明这是一个关于C#编程语言的示例项目,主要涉及Repository模式和Unit of Work(工作单元)模式。Repository模式是设计模式中的一种,常用于数据访问层,它为业务逻辑层...

    NoIOCFramework(007控制台动态实例Repository调用模式,MiniProfiler10组1000次读写性能监视)

    《NoIOCFramework:探索控制台应用中的Repository模式与依赖注入》 在.NET Framework的开发环境中,框架、模式和依赖注入是构建可扩展、可维护系统的重要基石。本篇文章将深入探讨"NoIOCFramework"项目,它展示了...

    Repository实例源码.7z

    Repository模式是一种设计模式,它为数据访问层提供了一个抽象接口,隔离了具体的数据访问技术,如Entity Framework(EF)或NHibernate,使得业务逻辑层与数据访问层解耦。在这个"Repository实例源码.7z"压缩包中,...

    Laravel开发-repository-generator

    在Laravel框架中,Repository模式是一种常见的设计模式,用于实现业务逻辑层与数据访问层的解耦。Repository Generator是Laravel开发中的一个实用工具,它能够帮助开发者自动生成Repository类,从而快速构建应用的...

    Repository设计模式介绍[归纳].pdf

    Repository设计模式是一种在软件开发中常见的模式,特别是在领域驱动设计(Domain-Driven Design, DDD)中被广泛应用。这个模式的主要目标是提供一个抽象层,将业务逻辑与数据访问逻辑分离,使得业务对象可以直接与...

    mongodbrepositoryPHP7MongoDBRepository实现

    Repository模式是一种设计模式,它作为业务逻辑和数据存储之间的抽象层,使得数据访问更易于管理和测试。MongoDBRepository则是这个模式的具体实现,用于处理MongoDB数据库中的数据操作。 MongoDB是一款基于分布式...

Global site tag (gtag.js) - Google Analytics