聊聊DDD的理解

DDD—领域驱动模型

将代码深度与业务绑定

1.简单概括

传统开发:对着需求文档写代码,数据库怎么设计代码怎么写,业务逻辑分散在controller,service,util,实体类只用作数据的载体(贫血模型)

DDD:拉着业务画领域模型,业务规则被封装在领域实体的内部,业务怎么变,实体的代码怎么调整

 

2.DDD关键设计

聚合根

在传统方式中在Service分别管理不同实体对象,用户对象地址对象,对象之间没有关联。

在DDD中将地址对象封装在用户对象中,由用户对象控制地址的增删改,用户对象即为聚合根。

领域服务及应用服务

领域服务负责多个实体对象之间的业务交互逻辑,例如在用户对象中新增地址对象。 (利用聚合根实现)

应用服务负责调用各个领域服务,编排流程,不涉及具体到业务实现逻辑。  (还包括调用mq发消息这种基础设施操作)

领域事件指领域中的业务发生变化,记录成事件,订阅该事件的模块可以根据事件进行响应处理,实现模块间解耦。

 

 

3.DDD实现的目的

修改业务规则时,只需要改动领域层代码,无需对Service,Controller变动

适用于业务规则复杂,需求频繁变更场景。

 

posted @ 2025-04-10 09:48  六小扛把子  阅读(40)  评论(0)    收藏  举报