很多业务系统都是基于MVC三层架构开发的。 具体来说是一种基于:[[贫血模型]]的MVC三层架构开发模式。 >虽然这种开发模式已经成功标准的Web项目的开发模式, >但它却违反了面向对象编程风格, >是一种彻彻底底的**面向过程**的编程风格, >因此而被有些人称为[反模式](https://zh.wikipedia.org/wiki/%E5%8F%8D%E9%9D%A2%E6%A8%A1%E5%BC%8F)。 ==MVC三层架构 M表示Model,V表示View,C表示Controller。== 并将整个项目分为: 展示层、逻辑层、数据从。 ==只包含数据,不包含业务逻辑的类,就叫做**贫血模型**(Anemic Domain Model)== 贫血模型将数据与操作分离,破坏了面向对象的封装特性, 是一种典型的面向过程的编程风格。 **充血模型**(Rich Domain Model):数据和对应的业务逻辑被封装到同一个类中。 + 为什么基于贫血模型的传统开发模式如此收到欢迎? 1. 大部分情况下,业务逻辑简单,贫血模型足以应对。 2. 充血模型更有难度,需要提前设计。 3. 思维已固化,转型有成本。 + 什么项目应该考虑使用基于充血模型的DDD开发模式? 1. 业务复杂的系统开发。