Domain-Driven Design 领域驱动设计

Posted smallzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Domain-Driven Design 领域驱动设计相关的知识,希望对你有一定的参考价值。

  领域驱动设计(DDD)是一种能通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。

  DDD的前提

  • 把项目的主要重点放在核心领域和领域逻辑上
  • 把复杂的设计放在领域模型上
  • 发起技术专家和领域专家之间的创造性协作,以迭代方式完善解决特定领域问题的概念模型。

领域驱动设计的模型由4个基本层组成

  1. 表示层:为用户提供接口,实现与用户交互
  2. 应用层:表示层与领域层中介,编排业务对象执行特定的应用程序任务,使用应用程序逻辑实现用例。
    • 应用服务
    • 数据传输对象 
    • 工作单元
  3. 领域层:包含业务对象及业务规则,是应用程序的核心。
    • 实体与聚合根
    • 值对象
    • 仓储
    • 领域服务
    • 规约
  4. 基础设施层:提供通用的技术功能,支持更高的层,主要使用第三方类库。      

设计领域模型的步骤

  1. 根据需求划分初步的领域和限界上下文及上下文间的关系
  2. 进一步分析上下文内部,识别实体及值对象
  3. 对实体、值对象进行关联和聚合,划分聚合的范畴和聚合根
  4. 在工程中时间领域模型并在实践中检验其合理性,推倒模型不足之处重构。

以上参考:https://mp.weixin.qq.com/s/kzf2koy4e3fxPI9BEpdwyQ、https://mp.weixin.qq.com/s/k0sRuf2wdk5eCoXwCt7xuw

以上是关于Domain-Driven Design 领域驱动设计的主要内容,如果未能解决你的问题,请参考以下文章

软件开发模式——领域驱动设计(DDD Domain-Driven Design)

软件开发模式——领域驱动设计(DDD Domain-Driven Design)

DDD(Domain-Driven Design)领域驱动架构介绍.md

华为云技术分享如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得

DDD Domain-Driven Design

领域驱动设计(Domain Driven Design)参考架构详解