领域驱动基础知识点
核心域:是业务系统的核心。
通用域:是为整个业务系统提供支持服务。
支撑域:是专注于业务系统的某一重要业务,支撑完善业务系统。
统一语言:便于交流,方便设计。
语言中的动词,【付款、下单】可以转换为命令或领域事件
语言中的名词,【商品、订单】有时可以直接转换为代码中的模型、聚合、服务边界
举例:
电商系统:
销售子域:核心域
商品子域,物流子域:支撑域
领域服务:表述领域行为,是对应用服务的具体细分,具体的某一个环节
应用服务:表述应用行为,具体操作,从开始到结束的每个环节
比如购物车结算 就是一个应用行为,其中包含了:【价格计算,支付,生成订单等】
其中 支付、生成订单 就是应用服务中的某个领域服务
聚合根:为避免复杂数据模型缺少统一的业务规则限制,导致实体之间数据不一致的问题。
实体: 在领域模型中,都是转换为实体,聚合根也是一个实体。
值对象:模型中不可变的值就是属于值对象的一种定义,【比如pms中的商机编号,或表中的ID】
比如客户地址也属于值对象。
【值对象的概念:不可更改的值,如有变动只能摧毁重建,且不能有多条,不需要ID标识唯一性】
比如:客户地址是值对象,如果客户地址有多个地址,则地址应设计为实体,不属于值对象
在使用DDD创建系统:
第一步:头脑风暴,会议讨论定义领域。
例:

第二步:设计实体和聚合。

本文探讨了领域驱动设计中的关键概念,包括核心域、通用域和支撑域的区分,统一语言的重要性,以及如何将业务词汇转化为代码模型。通过实例解析电商系统的结构,讲解了聚合根、值对象和领域服务的概念,以及DDD在系统创建中的步骤和实体设计的应用。
176万+

被折叠的 条评论
为什么被折叠?



