很多业务系统都是基于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. 业务复杂的系统开发。