《解构领域驱动设计》领域建模篇

简介: 《解构领域驱动设计》领域建模篇

领域建模的过程,是模型驱动设计的过程,也是迭代建模的过程。


不可妄求一蹴而就能获得完整的领域模型,也不可殚精竭虑地追求领域模型的尽善尽美。领域建模的分析、设计和实现是循序渐进的增量建模,建模目标与侧重点也不尽相同。


image.png


领域分析模型负责捕捉表示领域知识的领域概念,明确它们之间的关系,形成反映现实世界的对象概念图。获得的分析模型全面而粗疏,既不至于遗漏重要的领域概念导致模型的缺失,又不至于锱铢必较地因为过分定义领域属性而陷入分析瘫痪。


领域设计模型在领域分析模型的基础上加入对设计和实现的思考,为对象概念图戴上聚合的镣铐,在保证概念完整性、独立性、不变量与一致性的基础上,更好地管理对象的生命周期。服务驱动设计则赋予了领域模型以动能,在对业务服务进行任务分解的基础上,由外自内由各种角色构造型参与协作,形成了连续执行的消息链条,驱动出远程服务、应用服务、领域服务、聚合和各种端口的方法,既验证了领域模型对象的正确性与完整性,又丰富了领域模型的内容。


领域实现模型基于服务驱动设计输出的任务列表和序列图脚本开展测试驱动开发,领域层的产品代码与测试代码共同构成领域实现模型。由于拥有单元测试的保护,及时重构又改进了代码的质量,使得领域实现模型变得整洁而稳定,形成具有运行能力的核心领域资产。在实现领域模型时,也是对领域设计模型和领域分析模型的一次验证。


聚合是领域建模阶段的基本设计单元。


领域分析模型向领域设计模型的演进是通过识别聚合完成的,聚合边界的约束能力使得领域设计模型在保证细粒度对象定义的同时,又能通过封装实体与值对象的细节简化对象模型,降低领域模型的复杂度。一旦确定了聚合,就可以由此定义资源库端口和领域服务,并按照信息专家模式将体现领域逻辑的原子任务分配给聚合,建立富领域模型。聚合是纯粹的,它不依赖于任何访问外部资源的端口,因此它也是稳定的;因为聚合是稳定的,使得围绕着它为核心建立的领域模型也变得更加稳定。

相关文章
|
6月前
|
领域建模
架构设计 DDD领域建模 核心概念
【1月更文挑战第6天】架构设计 DDD领域建模 核心概念
|
存储 自然语言处理 前端开发
领域驱动设计(DDD)-基础思想
一、序言     领域驱动设计是一种解决业务复杂性的设计思想,不是一种标准规则的解决方法。在领域驱动设计理念上,各路大侠的观点也是各有不同,能力有限、欢迎留言讨论。 二、领域驱动设计 DDD是什么 wiki释义:     领域驱动设计(英语:Domain-driven design,缩写 DDD)是一种通过将实现连接到持续进化的模型[1]来满足复杂
7531 0
|
6月前
|
设计模式 算法 Java
深入理解面向对象设计的深层原则与思维
软件设计原则是指在软件开发过程中,通过一系列指导性的原则来指导设计决策和编码实践。这些原则旨在提高软件系统的质量,使其具有可维护性、可扩展性、可重用性和可测试性。几个重要性:可维护性、可扩展性、可重用性、可测试性和降低系统复杂度。软件设计原则是提高软件系统质量和可维护性的基石。遵循这些原则可以使得代码更加清晰、灵活和可靠,提高开发效率和软件质量,减少后期维护成本。同时,它们也为团队合作和团队成员共同理解代码提供了共同的规范和指导。
141 2
深入理解面向对象设计的深层原则与思维
|
存储 人机交互
领域驱动设计总结——如何构造领域模型
本文为领域驱动设计系列总结的第三篇,主要对领域驱动设计概念做个介绍,本系列领域驱动设计总结主要是在Eric Evans 所编写的《领域驱动设计》 一书的基础上进行归纳和总结。本文主要介绍在领域驱动设计中如何构造领域模型。
166 0
|
设计模式 Java 关系型数据库
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
122 1
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
|
领域建模 微服务
《解构领域驱动设计》融合篇
《解构领域驱动设计》融合篇
《解构领域驱动设计》融合篇
|
测试技术 领域建模 API
《解构领域驱动设计》思维导图
《解构领域驱动设计》思维导图
《解构领域驱动设计》思维导图
|
存储 缓存 架构师
《解构领域驱动设计》第一章
《解构领域驱动设计》第一章
《解构领域驱动设计》第一章
|
前端开发 领域建模
解构领域驱动设计》架构映射篇
解构领域驱动设计》架构映射篇
解构领域驱动设计》架构映射篇
|
领域建模 项目管理
《解构领域驱动设计》开篇讲了什么
《解构领域驱动设计》开篇讲了什么
下一篇
无影云桌面