贫血模型: 只包含数据结构,不包含业务逻辑的类。如Entity、BO等,面向过程编程风格。
充血模型: 数据和对应的业务逻辑被封装到一个类中。满足面向对象的封装特性,面向对象编程风格。
MVC三层架构: 三个字母分别指Model、View、Controller,即将整个项目分为三层:展示层、逻辑层、数据层。
领域驱动设计(Domain Driven Design): 主要用来指导如何解耦业务系统,划分业务模块,定义业务领域模型及其交互。做好DDD的关键是对所做业务的熟悉程度。
一、贫血开发模式与充血开发模式的区别
基于贫血模型的MVC三层架构: 很多业务系统都是基于贫血模型的MVC三层架构来开发的,甚至这种开发模式已经成为标准的Web项目的开发模式,不过这其实是一种面向过程的编程风格。BO只包含数据,不包含具体的业务逻辑,业务逻辑集中在Service类中,轻BO重Service。
基于充血模型的DDD架构: 基于充血模型的DDD开发模式也是按照MVC三层架构分层的,与基于贫血模型的开发模式主要区别在Service层。Domain就相当于贫血模型中的BO,不过Domain既包含数据,也包含业务逻辑,而Service类就变的非常单薄,轻Service重Domain。
二、为什么基于贫血模型的开发模式如此受欢迎?
1、充血模型的设计比贫血模型更有难度。一开始就要设计好暴露哪些操作、定义哪些业务逻辑。
2、大部分情况下,我们开发的业务