维基百科:领域驱动设计 Domain Driven Design DDD领域驱动设计基本理论知识总结 领域驱动设计实践手册 领域驱动设计(DDD) ABP 领域驱动设计 领域驱动设计在互联网业务开发中的实践

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

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

    领域驱动设计的经典分层架构

    DDD 介绍 - 图1

    用户界面/展现层

    负责向用户展现信息以及解释用户命令。更细的方面来讲就是:
  1. 请求应用层以获取用户所需要展现的数据;
  2. 发送命令给应用层要求其执行某个用户命令;

    应用层

    很薄的一层,定义软件要完成的所有任务。对外为展现层提供各种应用功能(包括查询或命令),对内调用领域层(领域对象或领域服务)完成各种业务逻辑,应用层不包含业务逻辑。

    领域层

    负责表达业务概念,业务状态信息以及业务规则,领域模型处于这一层,是业务软件的核心。

    基础设施层

    本层为其他层提供通用的技术能力;提供了层间的通信;为领域层实现持久化机制;总之,基础设施层可以通过架构和框架来支持其他层的技术需求;