Domain-Driven Design 领域驱动设计
领域驱动设计(DDD)是一种能通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。
DDD的前提:
- 把项目的主要重点放在核心领域和领域逻辑上
- 把复杂的设计放在领域模型上
- 发起技术专家和领域专家之间的创造性协作,以迭代方式完善解决特定领域问题的概念模型。
领域驱动设计的模型由4个基本层组成
- 表示层:为用户提供接口,实现与用户交互
- 应用层:表示层与领域层中介,编排业务对象执行特定的应用程序任务,使用应用程序逻辑实现用例。
- 应用服务
- 数据传输对象
- 工作单元
- 领域层:包含业务对象及业务规则,是应用程序的核心。
- 实体与聚合根
- 值对象
- 仓储
- 领域服务
- 规约
- 基础设施层:提供通用的技术功能,支持更高的层,主要使用第三方类库。
设计领域模型的步骤:
- 根据需求划分初步的领域和限界上下文及上下文间的关系
- 进一步分析上下文内部,识别实体及值对象
- 对实体、值对象进行关联和聚合,划分聚合的范畴和聚合根
- 在工程中时间领域模型并在实践中检验其合理性,推倒模型不足之处重构。
以上参考:https://mp.weixin.qq.com/s/kzf2koy4e3fxPI9BEpdwyQ、https://mp.weixin.qq.com/s/k0sRuf2wdk5eCoXwCt7xuw