W EB 三层架构与 MVC 收藏 而我发此文的目的有二:一者,让初学者能够听到一家之言,是为解惑;二者,更希望抛砖引玉,得到专家的批判
许多学生经常问我,MVC 到底和 WEB 三层架构有啥关系
开始时,我也只能给他们一些模糊的回答
时间长了,自己的良心开始受到谴责
对于一个程序员来说,这个问题显得挺学究
我在跟自己的许多程序员朋友以及同行(Java 讲师)都对 MVC 和 WEB 三层架构的关系做了探讨
现在可以说对 WEB 三层架构和 MVC 之间的关系理出了头绪
此可谓教学相长
先说说 Web 三层架构这个古老话题
地球人都知道 web 三层架构是指: >用户接口层(UI Layer) >业务逻辑层(Bussiness Layer) >持久化层 关于业务逻辑和用户接口 在早期的 web 开发中,因为业务比较简单,并没有这三层的划分
用户数据的呈现及输入的接收、封装、验证、处理、以及对数据库的操作,都放在 jsp 页面中
这时的开发,好比盘古尚未开天辟地,整个 web 开发就是一片“混沌”
随着业务越来越复杂,人们开始考虑更好的利用OOP 这把利刃来解决问题
于是有人发现把业务逻辑抽取出来并形成与显示和持久化无关的一层,能够让业务逻辑清晰,产品更便于维护
这就是 SUN 当初倡导的 JSP Model 1 开发方式
关于持久化 JSP M1 开发方式中,并没有对数据如何持久化给出建议
在许多公司中,它们的产品是以数据库为中心进行架构和设计的
在他们的产品里,虽然也有 DAO 层,但是职责不清
为什么这么说呢,因为我发现在许多人眼里,DAO 层的指责很简单——增删改查
但我认为,这样理解实际上是本末倒置了
对于简单数据的管理来说,这样理解无可厚非
但随着业务逻辑变得日益复杂
我们实在是被复杂的对象关系搞头疼了,如果这时我们还要考虑如何把数据存储起来(