专栏首页IT笔记MVC与三层架构有什么区别

MVC与三层架构有什么区别

首先,声明一下,三层是三层,MVC是MVC,这俩是毫无关系的。

三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。

三层架构通常包括表示层,业务逻辑层以及数据访问层。虽然三层架构将系统在逻辑上分成了三层,但是它并不是物理上的分层。也就是说,对不同层的代码而言,经历编译、打包、部署后,所有的代码最终还是运行在同一个进程中。 MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。

MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。

只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

对于,我们JAVA开发者来说:

三层架构是界面层(UI)业务逻辑层(BLL)和数据访问层(DAL)构成的,而MVC设计模式是模型层(M)界面层(View)和控制层(Controller)构成的,而且他们之间也不对应。

如下图所示:

是不是顿时感到世界明朗了,对分层又深入了解了一步。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分布式系统ACID中C与CAP定理中C的区别

    ACID和CAP定理中都有C,代表Consistent一致性,很多人容易将这两个C混为一谈,其实这两个一致性是有区别的。 事务的定义是一系列操作要么全部成功,要...

    小柒2012
  • SpringBoot 2.0 + Nacos + Sentinel 流控规则集中存储

    Sentinel 原生版本的规则管理通过API 将规则推送至客户端并直接更新到内存中,并不能直接用于生产环境。不过官方也提供了一种 Push模式,扩展读数据源R...

    小柒2012
  • 分布式跟踪工具Pinpoint初探

    由于工作需要,前段时间抽口研究了一下APM相关技术。 大的互联网公司都有自己的分布式跟踪系统,比如Google的Dapper,Twitter的zipkin,淘宝...

    小柒2012
  • 杨老师课堂之JavaWeb体系的MVC与三层架构有什么区别

    三层架构通常包括表示层,业务逻辑层以及数据访问层。虽然三层架构将系统在逻辑上分成了三层,但是它并不是物理上的分层。也就是说,对不同层的代码而言,经历编译、打包、...

    杨校
  • 老网工: SD-WAN 技术架构的发展和演进

    前一阶段在公司老板的指导下,团队合力写了一部SD-WAN技术趋势报告,由于报告素材和内容基本上都来源于客观的分析和我们在实际SD-WAN项目的实践经验,市场反馈...

    SDNLAB
  • layer弹出层中H5播放器全屏出错解决 & 属性poster底图占满video的方法

    所以,目前的解决办法是在layer层创建之后,移除这个class即可(注意在success回调中置于下一轮事件循环)

    书童小二
  • 改变世界面貌的十个数学公式

    大数据文摘
  • Caddy的简单应用(一)

    Caddy项目的GitHub地址。按照指南可以快速安装完毕。也有一些一键安装脚本可以使用。在此不过多赘述。

    Huramkin
  • 宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)

    早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程访问到这片内存。

    Linux阅码场
  • 复制公式的利器-Mathpix Snipping

    理工科论文中使用数学公式非常多,本来想着在mathtype中一点一点敲数学公式,公式比较少还可以接受,公式多的话会浪费很长时间,我也深受其困扰,故决定想办法克服...

    fem178

扫码关注云+社区

领取腾讯云代金券