可能是我大脑不是很聪明的缘故,网上讲的DDD领域模型看的不太明白。不过看完下面的实战,估计就会懂了。

钱包业务示例

DDD领域模型浅显易懂的示例实战

1,基于贫血模型的传统开发模式

这是一个典型的 Web 后端项目的三层结构。

  • 实体类
    DDD领域模型浅显易懂的示例实战
  • Controller层
    DDD领域模型浅显易懂的示例实战
  • Service层
    DDD领域模型浅显易懂的示例实战

2,基于充血模型的 DDD 开发模式

  • 领域模型层(可以大致理解为实体类加上封装的指令)
    DDD领域模型浅显易懂的示例实战
    DDD领域模型浅显易懂的示例实战

  • Service层(将入参转为领域模型层,执行)
    DDD领域模型浅显易懂的示例实战

总结

基于充血模型的 DDD 开发模式跟基于贫血模型的传统开发模式相比,主要区别在 Service
层。在基于充血模型的开发模式下,我们将部分原来在 Service 类中的业务逻辑移动到了一
个充血的 Domain 领域模型中,让 Service 类的实现依赖这个 Domain 类。

在基于充血模型的 DDD 开发模式下,Service 类并不会完全移除,而是负责一些不适合放
在 Domain 类中的功能。比如,负责与 Repository 层打交道、跨领域模型的业务聚合功
能、幂等事务等非功能性的工作。

基于充血模型的 DDD 开发模式跟基于贫血模型的传统开发模式相比,Controller 层和
Repository 层的代码基本上相同。这是因为,Repository 层的 Entity 生命周期有限,
Controller 层的 VO 只是单纯作为一种 DTO。两部分的业务逻辑都不会太复杂。业务逻辑
主要集中在 Service 层。所以,Repository 层和 Controller 层继续沿用贫血模型的设计思
路是没有问题的。
更多前沿技术,面试技巧,内推信息请扫码关注公众号“云计算平台技术”
DDD领域模型浅显易懂的示例实战

相关文章:

  • 2021-08-31
  • 2021-10-14
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-27
  • 2021-11-29
猜你喜欢
  • 2022-01-13
  • 2021-08-09
  • 2022-12-23
  • 2021-08-27
  • 2022-12-23
  • 2021-07-27
  • 2021-06-23
相关资源
相似解决方案