架构设计 DDD领域建模 核心概念

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: 【1月更文挑战第6天】架构设计 DDD领域建模 核心概念

实体 和 值对象:

DDD领域设计中对象分为两种:实体Entity值对象Value Object实体Entity对象 代表具有唯一ID的领域对象。值对象Value Object代表一成不变的、本质性的事务,不具有唯一的ID

实体Entity是和业务进行强关联的,随着业务的变更,除了唯一ID不变之外,其他的所有属性都可能发生变化。

值对象Value Object一般需要依赖实体对象来赋予业务价值。

实体对象与值对象的关系:实体对象和值对象在一定条件下是可以相互转化的,除了唯一ID外的所有属性都是可以不断变化的。实体与实体之间通过ID相关联。实体与值对象之间通过信息冗余进行关联。

领域服务:

服务表示的就是那些在领域对象之外的操作和行为。跨实体的业务操作,交由服务来协调。服务用来隔离业务逻辑与技术实现。

服务通常用于相应某些请求、调用某些操作。服务不能直接操作实体中的属性,而必须调用实体中的行为间接对属性进行操作。

防腐层:

防腐层Anti-Conrruption Layer:隔离系统与外部依赖

聚合 和 聚合根:

聚合Aggregator实体和值对象体现的是个体的能力,聚合体现的是这些个体的系统工作能力。

聚合作用:聚合是用来确保这些领域对象在实现共同的业务逻辑时,能保证数据的一致性。

聚合根Aggregator Root每个聚合内部有一个外部访问聚合的唯一入口,称为聚合根。每个聚合中应确定唯一的聚合根实体。

仓库 和 工厂:

仓库Repository和工厂隔离开了数据源和上层业务(领域实体)。

相关文章
|
7天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
17 3
|
30天前
|
Java Docker 微服务
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
55 1
|
1月前
|
存储 消息中间件 JSON
|
2月前
|
NoSQL Redis UED
业务架构问题之在流程建模中,“定职责”的重要性是什么,流程建模中的交互设计原则是什么
业务架构问题之在流程建模中,“定职责”的重要性是什么,流程建模中的交互设计原则是什么
|
27天前
|
BI
软件设计与架构复杂度问题之业务简单的系统不适合使用DDD架构如何解决
软件设计与架构复杂度问题之业务简单的系统不适合使用DDD架构如何解决
|
2月前
|
JSON Go C++
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
34 1
|
3月前
|
Java 数据库连接 Spring
Spring底层架构核心概念总结
Spring底层架构核心概念总结
|
2月前
|
缓存 Java 应用服务中间件
架构设计篇问题之通过DDD领域模型对服务进行拆分问题如何解决
架构设计篇问题之通过DDD领域模型对服务进行拆分问题如何解决
|
2月前
|
缓存 项目管理
项目管理定义问题之DDD架构的分层架构中基础层作用是什么
项目管理定义问题之DDD架构的分层架构中基础层作用是什么
|
2月前
|
BI API 容器
数据架构问题之BI的早期概念是什么
数据架构问题之BI的早期概念是什么