`
sea7
  • 浏览: 5846 次
  • 性别: Icon_minigender_1
  • 来自: 火星
最近访客 更多访客>>
社区版块
存档分类
最新评论

对于Domain Model和Repository实现之间依赖的困惑

阅读更多

对于Respository接口属于Domain Layer这个我没有任何问题,因为IRepository在Domain Model的生命周期中的作用非常明显且领域模型对于持久化的行为是关心的,而Repository的实现放在Infrastructre Layer概念也很清晰,领域模型不关心持久化的实现。

问题时在这样的话,Domain Layer和Infrastructure Layer会产生循环引用。 如果实现时在.net 平台,问题就更严重,程序集的双向引用是绝对不允许,也不不可能实现的。

现在我有的方案是:
  1.对于数据库中数据表映射成一个个Entity, 把Entity放在Infrastructure Layer
  2.在Service中完成Domain Model与相应Entity的转换,并调用Repository对Entity进行持久化。

不知道大家有什么高招,或者自己的项目中有更好的实践。

分享到:
评论

相关推荐

    Laravel开发-model-repository

    在Laravel框架中,Model Repository是一种设计模式,用于在业务逻辑层和数据访问层之间创建一个抽象层。这种模式有助于保持代码的整洁和可维护性,使得应用的业务逻辑与数据库交互方式分离,从而实现更好的代码组织...

    领域驱动(DDD)充血模式下,domain 与 Service以及Repository的解耦---DOMAIN EVENT

    本文将详细探讨DDD中的“充血模式”(Bounded Contexts with Rich Domain Models),以及如何通过引入DOMAIN EVENT来实现domain、Service与Repository之间的解耦。 首先,我们来理解DDD的核心概念——领域模型...

    EFcore Repository 依赖注入方式实现数据库基本操作

    EF Core 提供了模型化数据库对象和SQL语句之间的桥梁,使得开发者可以使用面向对象的方式来处理数据库操作。它支持多种数据库系统,如SQL Server、SQLite、MySQL等,并提供了查询、事务、仓储(Repository)等特性...

    mavenRepository 仓库 依赖

    在Java开发领域,MavenRepository是一个至关重要的概念,它是一个存储和检索项目构建依赖的仓库。这个仓库系统是Apache Maven的核心组成部分,它管理着各种Java库、框架和项目的JAR文件,使得开发者能够轻松地引用并...

    maven依赖库 - maven_repository.zip

    3. **jdom**(Java Document Object Model):这是一个用纯Java编写的DOM(Document Object Model)实现,用于处理XML文档。它允许开发者通过面向对象的方式来创建、修改和操作XML文档,提供了比SAX和DOM更友好的API...

    Python库 | domainmodel-0.12.tar.gz

    通过安装和使用"domainmodel-0.12"库,开发者可以利用其提供的结构和工具,更高效地编写符合领域驱动设计原则的Python后端应用。为了进一步了解和利用这个库,开发者需要阅读相关的文档,理解库的设计理念和使用方式...

    Entity Framework Repository(含依赖注入)

    Entity Framework Repository(含依赖注入)

    doris-1.1.3源码编译broker-maven依赖包repository

    总的来说,Doris 1.1.3 源码编译 Broker Maven 依赖包 Repository 的过程涉及到对Maven的熟练运用,包括理解`pom.xml`文件,管理依赖,配置Repository,以及编译和打包操作。只有对这些知识点有深入的理解,才能顺利...

    mongodbrepositoryPHP7MongoDBRepository实现

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

    repository.zip

    标题中的"repository.zip"指的是一个压缩包文件,其内容是一个Maven的本地...同时,这也是一种分享依赖和项目配置的方法,但需要注意的是,直接替换可能带来的版本冲突或安全风险,因此在使用前应确保兼容性和安全性。

    eloquentmongodbrepository构建在laravelmongodb之上的Repository实现

    2. `MongoDBRepository`类:实现了`Repository`接口,内部包含了与MongoDB数据库的交互逻辑,利用Laravel-MongoDB扩展提供的函数执行查询和操作。 3. `Model`类:Eloquent风格的MongoDB模型,继承自Laravel-MongoDB...

    spring依赖注入的实现原理

    它将对象的创建和对象之间依赖关系的管理交给了框架,使得系统更加灵活、易于测试和扩展。 ### 实现原理 1. **Bean工厂(Bean Factory)** Spring通过Bean工厂来管理对象,它是Spring的核心。Bean工厂负责创建对象...

    repository

    理解并正确管理好这样的repository对于Java开发团队来说至关重要,因为它直接影响到项目的构建速度和稳定性。维护一个本地的、更新的repository可以减少网络延迟,确保开发和构建过程的顺畅进行。

    RedisRepository 分享和纠错

    本文主要讲述了RedisRepository的分享和纠错,内容包括作者对之前实现RedisRepository的自我纠错以及对代码结构的分享。 在使用Redis的时候,作者提到了两个主要错误。第一个错误是未单例化ConnectionMultiplexer。...

    java的repository文件

    这些依赖是程序运行所必需的,它们提供了额外的功能或者实现了特定的库、框架和服务。`repository` 文件通常被用作一个集中的地方来管理这些外部组件,以确保开发环境的一致性和可重复性。 标题中提到的“java的...

    SpringDataJpa开发--继承JpaRepository实现简单条件查询

    通过以上步骤,我们可以在Spring Boot应用中利用Spring Data JPA和`JpaRepository`轻松实现对数据库的访问,大大简化了数据访问层的代码。在实际项目中,还可以结合`Pageable`接口进行分页查询,或者使用`...

    10.1-Repository

    在学习和实践中,理解Repository模式的核心理念,以及如何在.NET Core中利用EF Core来实现,对于提升软件的架构质量和可扩展性至关重要。这个项目是一个很好的起点,可以深入研究并扩展到更复杂的系统中。

    Laravel开发-repository

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

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

    总的来说,这个项目展示了如何在.NET环境中综合运用Repository模式、AutoFac依赖注入和jQuery DataTables,实现一个高效、可扩展且易于维护的数据操作和展示系统。通过这种方式,开发者可以专注于业务逻辑,而不必...

Global site tag (gtag.js) - Google Analytics