1、领域驱动设计在中台建 设中的实践 01 背景介绍 02 领域驱动设计之建模 03 领域驱动设计之架构 PART ONE 背景介绍 背景介绍 埃里克埃文斯 (Eric Evans) 问题域 解决方案域 战略 战术 PART TWO 领域驱动设计之 建模 领域驱动设计-战略建模 战略层面 建立通用语言建立通用语言 建立领域模型 识别依赖关系 通用语言 领域驱动设计-战略建模 概念 领域 限界上下文 原则:一般一个限界上下文对应一个子域;当一个限界上下文包含的不只原则:一般一个限界上下文对应一个子域;当一个限界上下文包含的不只 一个子域时需要拆分。一个子域时需要拆分。 子域A子域B 子域C 限界上下
2、文 子域A子域B 子域C 限界上下文限界上下文 限界上下文 领域驱动设计-战略建模 战略层面 建立统一语言 建立领域模型建立领域模型 识别依赖关系 建立领域模型 核心域 支撑域 通用域 核心域 支撑域通用域 领域驱动设计-战略建模 识别依赖关系 合作关系(Partnership) 共享内核(Shared Kernel) 客户方-供应方开发 (Customer-Supplier Development) 遵奉者(Conformist) 防腐层(Anticorruption Layer) 开放主机服务(Open Host Service) 发布语言(Published Language) 大泥球(
3、Big Ball of Mud) 另谋他路(Separate Way) 战略层面 建立通用语言 建立领域模型 识别依赖关系识别依赖关系 领域驱动设计-战术建模 概念 实体(Entity) 值对象(Value Object) 聚合(Aggregate) 实体(Entity):用唯一的标识符来定义,而不是通过属性来定义。 即使属性完全相同也可能是两个不同的对象 实体本身有状态的 实体有演进的生命周期,会体现出相关的业务行为,业务行为会实体属性或状态造成影响和改变 值对象(Value Object):用于描述领域的某个方面本身没有概念标识的对象。 值对象被实例化后只是提供值或叫设计元素 这种对象无状态,本身不产生行为,不存在生命周期演进 实体值对象 有唯一标识无唯一标识 有生命周期无生命周期 可变不可变 通过ID判别相等通过属性判别相等 聚合(Aggregate):一组相关对象的集合,我们把它作