在Web 开发中,MVC 与三层架构这两个名词会经常被人提及,很多人会将它们混为一谈,认为MVC 就是三层架构,而实际上它们是两个不同的概念,并不是说完全没有关系,它们存在差异但也有相似的地方,不过可以肯定的是,这两个架构都是为了降低系统物件关系间的耦合度而产生的。
首先介绍MVC 架构,MVC 指的是Model(模型)、View(视图)、Controller(控制器)的简写,分别代表应用程序中三种不同职责的物件。
代表存取资料的POJO,也可以带有业务逻辑,其作用是在记忆体中暂时储存资料,并在资料变化时更新控制器,若要持久化则需要将它写入资料库或档案中。
主要用来显示内容或提交数据。
主要用来处理用户的请求,它可以将用户请求转发给相应的Model 进行处理并根据Model 处理结果向用户提供相应的回应。
再来介绍三层架构,它就是将整个应用程序划分为表现层、业务逻辑层、数据存取层三个部分,各司其职不互相干扰,既解决耦合性,也增加了逻辑性、覆用性和可维护性。
主要负责接收用户请求、转发请求、产生数据并返回结果。
针对具体问题的操作,主要是从资料库中取得数据并对数据进行逻辑处理。
也叫做持久层,主要负责对资料库的操作,针对数据的新增、删除、修改、查询。
表现层则只是与用户互动的一个功能,决定用户请求的处理方式并返回结果;业务逻辑层并没有使用SQL 语句对资料库进行操作,而只是透过资料存取层的接口存取资料库中的数据,并对数据进行逻辑上的处理。
简单来说,三层架构的表现层是处理用户请求并返回结果,这对应到MVC 中的V 和C,所以MVC 中的V 和C 可以判断是属於三层架构的表现层;而MVC 中的M 可以对存取资料或是进行业务逻辑处理,这对应到三层架构的业务逻辑层和资料存取层,它们的关系就会如下图所示。
Web on Servlet Stack
Spring MVC与三层架构 - Heart.Think.Do
>>: [FGL] 程序开发(3) - 输入用的INPUT系指令与DIALOG
传值与传参考 物件传参考是 JS 中非常重要的特性,纯值和物件在赋值时的行为模式不同: 纯值在赋值时...
阿嬷都看得懂的程序码编辑器与开源软件是什麽 我们终於写出了第一支 .html 与 .css 档案了,...
学习 Angular 的过程中,遇到了一些教学资源不见得会遇到的问题,还真是家常便饭,而且你个人电脑...
Gitea Docker版本 绑定自签凭证by Nginx 当你的Gitea需要绑定SSL时有个快速...
初来乍到Ruby世界的读者们,绝对想不到原来Ruby 也有 curry, bind 等用法。这些语法...