三层架构与MVC的区别

   我们在上篇文章(三层架构的简单理解)中简单的介绍了一下三层架构,但是在总结三层架构的时候总是看到MVC的身影,然后就挺好奇他们俩到底是啥关系。因为没有实践过,也没有真正接触过MVC,所以一下都知道对别人知识的一个整理,来帮助自己理解两者的关系。

首先,先来了解一下MVC

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

  • (控制器Controller-负责转发请求,对请求进行处理。
  • (视图View - 界面设计人员进行图形界面设计。
  • (模型Model - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)

可以看出,三层架构和MVC都在逻辑上将程序分为三层。但是他们直接却没有任何直接的关系。

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

    三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理

某阶段的业务逻辑。比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这

样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。

 

    MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。

    MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC

把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单

独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为

Models。

   

    只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程

序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其

中一种。

        如果硬要给他们对应的话,那么三层架构中的UI对应MVC中的viewjsp),都是用于显示以及获取界面的数据;

三层架构中的BLL层和DAL层对应MVC中的Modeljavabean)层都是用于处理上层传递来的数据以及从数据库获取

的数据的;MVC中的ControllerServlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet

 

如下图所示:

    当然,如果从解耦的角度来看三层架构和MVC其实他们是一致的,只不过划分的方法不一样罢了,就像上面的图

所示。这就相当于我们看到馒头和面条一样,表面上看他们不一样(注意仅仅是表面)但是他们核心是一致的,都是

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值