DDD领域模型

DDD的基础概念

实体、值对象、聚合、
领域服务、防腐层、仓
库、工厂

DDD充血模型

贫血模型=》 POJO 
问题: 看不出业务有什么逻辑
一个大而全PoJo对象中只有Set/Get,由Service操作数据,导致贫血失忆症。
从一整个单独的pojo中,按业务定义单独实体,各个实体只做自己单独的事情。

值对象
在实体对象定义内部对象,统一入口

业务:涉及状态变化
仓库与工厂
所有对数据的操作放入工厂中
涉及多个数据库组装数据,可以采用工厂Builder

防腐层

隔离第三方外部服务

基础设施层

比如 kafaka或者rabbitmq作为内部组件

领域服务

跨实体状态变化
原:在目标中持有变量
DDD:每个实体只能操作自己领域内属性,调用领域的业务方法,不能调用set方法
1、需求更容易梳理:业务逻辑清晰纯净,没有业务与实现细节之间的复杂转换。
2、业务更容易开发:各领域内完全自治,不用担心其他模块的影响。
3、更容易单元测试:业务与外部依赖完全隔离,各功能组件的依赖也都是独立的。
很容易设计单元测试案例,单独测试。
4、技术容易更新:所以实现细节都是业务逻辑的扩展,指哪改哪。对业务无影响。

DDD四层架构规范

1、领域中的对象由实体和值对象组成。对值对象的访问必须经由所属的实体对象。
2、相关联的一组实体与值对象组成聚合。对聚合内对象的访问必须经由聚合根对象。
3、跨实体的操作必须经由领域服务。
4、应用服务层只通过领域服务或者聚合根来组织业务,自身不带任务实现逻辑。
5、业务与数据隔离。领域层只关注业务,数据支撑全部交由基础设施层。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
领域模型是软件开发中用于描述业务领域的概念和关系的一种建模方式。它主要用于帮助开发人员理解业务需求,并将其转化为可执行的软件系统。 在领域模型设计中,DDD(Domain-Driven Design,领域驱动设计)是一种常用的方法论。DDD强调将业务领域作为软件开发的核心,通过深入理解业务需求,将业务逻辑和领域模型进行有效的建模和设计。 在DDD中,领域模型是对业务领域中的实体、值对象、聚合根、领域服务等概念进行建模和描述的一种方式。它通过定义实体之间的关系、属性和行为,以及业务规则和约束,来描述业务领域的核心概念和逻辑。 领域模型设计的过程通常包括以下几个步骤: 1. 领域分析:深入理解业务需求,识别出业务领域中的核心概念和关系。 2. 实体建模:将业务领域中的实体抽象成具有属性和行为的对象,并定义它们之间的关系。 3. 聚合根设计:将相关联的实体组织成聚合根,通过聚合根来管理和维护实体之间的一致性和完整性。 4. 值对象定义:将不可变的、没有唯一标识的对象抽象成值对象,用于描述业务领域中的属性和属性集合。 5. 领域服务划分:将业务领域中的复杂业务逻辑抽象成领域服务,通过服务来实现业务操作和交互。 6. 领域事件设计:定义领域中的事件,用于表示业务领域中的状态变化和重要的业务行为。 通过合理的领域模型设计,可以提高软件系统的可维护性、可扩展性和可理解性,使开发人员更加专注于业务逻辑的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值