什么是DDD?DDD分层模型详解:应用层、领域层、基础层

微服务是大型架构核心,下面我详解DDD分层模型@mikechen

什么是DDD?

DDD 全称为: Domain-Driven Design(领域驱动设计)。

是由 Eric Evans 在 2003 年出版的同名书籍《Domain-Driven Design: Tackling Complexity in the Heart of Software》中提出的软件开发方法论。

它是一种以业务领域为核心的软件设计和架构模式,强调通过深入理解业务领域的复杂性,来构建高质量、可维护的软件系统。

DDD 适用于复杂业务系统(如企业级应用、微服务)。

 

DDD模型

DDD 经典四层模型中,实际落地最常用的是三层模型:

什么是DDD?DDD分层模型详解:应用层、领域层、基础层-mikechen

┌─────────────┐
│  应用层     │
├─────────────┤
│  领域层     │
├─────────────┤
│  基础层     │
└─────────────┘

 

应用层

应用层位于领域层之上,负责协调用例(Use Case)的执行,组织领域对象完成具体业务流程。

什么是DDD?DDD分层模型详解:应用层、领域层、基础层-mikechen

应用层,不应包含业务规则本身,而是负责事务控制、权限校验、调用领域服务以及与外部接口的编排。

通过将流程控制与领域规则分离,应用层使得业务流程更易于调整,同时保持领域模型的清晰性。

 

领域层

领域层是DDD的核心,承载业务模型与业务规则。

什么是DDD?DDD分层模型详解:应用层、领域层、基础层-mikechen

领域层:由实体(Entity)、值对象(Value Object)、聚合(Aggregate)、领域服务(Domain Service)及领域事件等构成。

其主要职责:是表达业务概念、维护业务一致性与执行业务规则。

领域层应尽量纯粹,不依赖技术细节,以便保持模型的可测试性与长期演化能力。

 

基础层

最后,基础层(或基础设施层)提供技术性实现。

什么是DDD?DDD分层模型详解:应用层、领域层、基础层-mikechen

包括:持久化(如ORM、仓储实现)、消息中间件、外部服务的集成、日志与监控等。

基础层,为领域层、与应用层提供必要的技术支持。

但对上层应尽量以接口或抽象的形式暴露实现细节,避免技术实现侵入领域模型。

这样的分层有助于职责分明、关注点分离与系统可维护性。

mikechen睿哥

10年+一线大厂架构实战经验,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。

评论交流
    说说你的看法