首先, 声明一下, 三层是三层, MVC 是 MVC, 这俩是毫无关系的.
三层是从整个应用程序架构的角度来分的三层(如果程序需要, 还可以分多层).
三层架构通常包括表示层, 业务逻辑层以及数据访问层. 虽然三层架构将系统在逻辑上分成了三层, 但是它并不是物理上的分层. 也就是说, 对不同层的代码而言, 经历编译, 打包, 部署后, 所有的代码最终还是运行在同一个进程中.
MVC 是一种设计模式, 一种思想, 是存在于应用程序 (B/S 结构: 又称之浏览器 / 服务器) 的视图层划分出来的不同功能的几个模块.
MVC 主要是为了解决应用程序用户界面的样式替换问题, 把展示数据的 html 页面尽可能的和业务代码分离. MVC 把纯净的界面展示逻辑 (用户界面) 独立到一些文件中 (Views), 把一些和用户交互的程序逻辑(Controller) 单独放在一些文件中, 在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象, 这些对象, 统称为 Models.
只所以说 MVC 和三层毫无关系, 是因为它们二者使用范围不同: 三层可以应用于任何语言, 任何技术的应用程序; 而 MVC 只是为了解决 BS 应用程序视图层各部分的耦合关系. 它们互不冲突, 可以同时存在, 也可根据情况使用其中一种.
对于, 我们 JAVA 开发者来说:
三层架构是界面层 (web) 业务逻辑层 (Service) 和数据访问层 (Dao) 构成的
MVC 设计模式是模型层 (Model) 界面层 (View) 和控制层 (Controller) 构成的, 而且他们之间也不对应.
总结:
? 1 三层架构是 Java 体系独有的专有名词, MVC 在其他语言中也是存在的设计模式.
? 2 三层架构是采用分层思想, 减轻类与类 (接口) 之间的耦合, 通俗的说是为了减轻代码之间的依赖性, 避免产生牵一发而动全身的后果. 而 MVC 意在将后端代码和前台展示代码进行了分离. JavaBean 既是一个封装的 java 对象, View 是用来给前台客户端显示反馈的页面, 采用 Jsp 来完成. 而前台的代码与后端的逻辑代码之间的交互工作就交付给了 Servlet.
? 运作流程: Servlet 接受到前台的传递的数据进行传递给业务逻辑层 Service 层, Service 层处理完毕传递给数据库访问 Dao,Dao 通过 Jdbc 或者持久化将数据注入到数据库中去, 继而反馈给 Service 层, Service 层响应给 Servlet,Servlet 返回给 Jsp 页面.
如下图所示:
来源: http://www.bubuko.com/infodetail-2958598.html