设计模式之美学习(九):业务开发常用的基于贫血模型的MVC架构违背OOP吗?
我们都知道,很多业务系统都是基于 MVC 三层架构来开发的。实际上,更确切点讲,这是一种基于贫血模型的 MVC 三层架构开发模式。 虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了面向对象编程风格,是一种彻彻底底的面向过程的编程风格,因此而被有些人称为反模式( anti-pattern )。特别是 领域驱动设计 ( Domain Driven Design ,简称 DDD )盛行之后,这种基于贫血模型的传统的开发模式就更加被人诟病。而基于充血模型的 DDD 开发模式越来越被人提倡。 基于上面的描述,我们先搞清楚下面几个问题: 什么是贫血模型?什么是充血模型? 为什么说基于贫血模型的传统开发模式违反 OOP ? 基于贫血模型的传统开发模式既然违反 OOP ,那又为什么如此流行? 什么情况下我们应该考虑使用基于充血模型的 DDD 开发模式? 什么是基于贫血模型的传统开发模式? 对于大部分的后端开发工程师来说, MVC 三层架构都不会陌生。 MVC 三层架构中的 M 表示 Model , V 表示 View , C 表示 Controller 。它将整个项目分为三层:展示层、逻辑层、数据层。 MVC 三层开发架构是一个比较笼统的分层方式,落实到具体的开发层面,很多项目也并不会 100% 遵从 MVC 固定的分层方式,而是会根据具体的项目需求,做适当的调整。 比如