简述 DDD架构对比MVC架构的优势
DDD 架构这个词汇越来越活跃在开发人员的世界里,相比较于传统的MVC三层架构,DDD架构的优势有体现在什么地方?
1. DDD四层架构
-
架构简介
DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。整个过程大概是这样的,开发团队和领域专家一起通过 通用语言(Ubiquitous Language)去理解和消化领域知识,从领域知识中提取和划分为一个一个的子领域(核心子域,通用子域,支撑子域),并在子领域上建立模型,再重复以上步骤,这样周而复始,构建出一套符合当前领域的模型。
-
架构特色
- 不会污染功能和服务
- 高可用的应用服务
- 组转化的服务
2. DDD架构的优势
-
MVC三层架构和DDD四层架构对比
-
便于代码重构
传统的MVC架构下,我们假设有以下场景:
domain: Ax.java Bx.java
dao: AxDao BxDao
service: AxService BxService
当项目体积不断扩展,业务逐步复杂,不规范的开发就会带来一些问题——“牵一发而动全身”
为了开发便捷,可能会在 AxService 中引入BxDao或过多其他Dao和实体,将来如果要对AxService中功能进行重构,将变得非常困难。
而DDD架构下,每个领域下都有独立的domain,model, repositery, service四层架构,由于包隔离的关系,服务之间就不会存在复杂的依赖关系。
所以DDD架构更加灵活且便于重构。