美文网首页
领域模型与持久化实现

领域模型与持久化实现

作者: 寻找无名的特质 | 来源:发表于2022-08-03 06:03 被阅读0次

领域模型负责表示业务概念、有关业务状况的信息和业务规则。 反映业务状况的状态是通过这个层进行控制和利用的,但有关状态存储的具体技术细节则由基础结构负责实施。 这一层是业务软件的核心。

域模型层是表述业务的地方。 在 .NET 中实现微服务域模型层时,该层被编码为类库,具有用于捕获数据和行为(方法和逻辑)的域实体。

为遵循持久性忽略(Persistence Ignorance)和基础结构忽略(Infrastructure Ignorance)原则,此层必须完全忽略数据持久性细节。 应由基础结构层来执行这些持久性任务。 因此,此层不应在基础结构上设置直接的依赖关系,这意味着存在一个重要规则,即域模型实体类应为普通旧 CLR 对象(POCO)。

域实体不应在任何数据访问基础结构框架(如 Entity Framework 或 NHibernate)上具有任何直接的依赖关系(如派生自基类)。 理想情况下,域实体不应派生自或实现任何在基础结构框架中定义的类型。

大多数新式 ORM 框架(如 Entity Framework Core)允许使用这种方法,以确保域模型类不会耦合到基础结构。 但是使用某些 NoSQL 数据库和框架(如 Azure Service Fabric 中的执行组件和可靠集合)时,并不总是能够获得 POCO 实体。

即使在需要为域模型遵循持久性无感知原则的情况下,也不应忽略对持久性的关注。 仍然很有必要了解物理数据模型和模型映射到实体对象模型的方式。 否则就不可能创建设计。

但这种情况并不意味可以采用为关系数据库设计的模型,并将其直接移到 NoSQL 或面向文档的数据库。 在某些实体模型中,该模型或许适用,但通常是不适用的。 实体模型仍须遵循某些约束,这些约束基于存储技术和 ORM 技术。

相关文章

  • 领域模型与持久化实现

    领域模型负责表示业务概念、有关业务状况的信息和业务规则。 反映业务状况的状态是通过这个层进行控制和利用的,但有关状...

  • 21.存储库

    DDD强调领域模型的模型在创建、搜索、持久化时不应该考虑技术实现细节,对于不仅仅在内存中使用的领域对象持久化是必须...

  • iOS数据持久化

    Title: iOS数据持久化 ##数据持久化概念 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型...

  • sikit-learn模型持久化

    sikit-learn模型持久化(导出)model persistence模型持久化。 1)使用pickle工具 ...

  • Hibernate学习笔记 - 第001天

    再论持久层 持久层设计 层:有清晰严格的逻辑编辑 持久层:专注于数据持久化的相对独立的领域 MVC实现了架构上的解...

  • Runtime(六)自动化归解档

    前言 实现自定义模型数据的持久化,通过encodeObject 和decodeObjectForKey方法,每一个...

  • 领域模型

    领域模型中的实体类细分为4种类型:VO、DTO、DO、PO。PO(Persistent Object):持久化对象...

  • 分布式-缓存

    缓存 Memcached 不可持久化Redis 可持久化 Memcached Memcached数据访问模型添加新...

  • Tensorflow MNIST for Android

    本篇博客主要介绍如何使用 tensorflow 通过 CNN 实现 MNIST 手写数字识别问题,并将模型持久化在...

  • 模型持久化

    模型持久化应该使用joblib或者pickle 所以上面两者不是一致的意思 还需要joblib可以持久化 可以参照...

网友评论

      本文标题:领域模型与持久化实现

      本文链接:https://www.haomeiwen.com/subject/lbhjwrtx.html