MVC架构(面试)

1.概述

MVC全名Model View Controller(模型-视图-控制器),是一种设计典范,将业务逻辑、数据、界面显示分离的来编写代码。将业务逻辑聚集到一个部件中,在改进页面效果和用户交互(说白了就是改变前端代码)的同时不需要去改变后台逻辑。

2.各部分含义

Model(业务模型):最底下的一层,是核心的“数据层”,是程序需要操作的数据或信息。(理解:除V和C外,其余全部是M)

View(视图):直接面向用户的视图层,是提供给用户的操作界面,是程序的外壳(理解:能够与用户交互的都是V,包括在控制台需要用户输入的地方,也包括java开发的桌面应用的界面也属于V)。

Controller(控制器):中间的一层,负责根据用户在View层输入的指令,选取Model层的数据,然后对其进行相应的操作,并产生最终的结果(理解:视图发送请求给控制器,由控制器选择模型进行处理数据,模型返回的结果交给控制器,由控制器选择对应的视图)。

根据这三层的概念,我们可以知道,MVC架构将具有相同作用的代码进行组合形成“层”,不同作用代码之间进行分离形成不同的“层”,各层之间相互独立,互不干涉,只进行信息交流。根据各层之间的概念可以推演出MVC架构的优缺点。

3.MVC架构的优点

①代码间各司其职,互不干涉(低耦合性)

各层分离,在改变某层代码逻辑的时候,不需要改变其他层代码逻辑。如:更改了视图层的页面样式,不需要改变后台逻辑。

②高重用性

MVC开发模式中允许多个不同样式的视图访问同一个服务器的代码。如:一款电商应用有web界面也有手机界面,在同样的功能上——都是加入购物车,前端界面不一样,但是后端逻辑是一致的,那么后台逻辑代码(也就是M和V)是可以使用同一套代码的。

③降低开发周期、提高质量

使用MVC模式,使得前端人员专注于开发前端,后端人员专注于写后端代码,分工明确,各司其职,既能降低开发州区,也能提高代码质量。

④高维护性

各层之间分离,哪里有问题修改哪里。如:业务逻辑有问题,需要修改M,其余两层代码不需要改变。如果这些逻辑全部写在一起,不仅查找不便,修改也不方便。

4.MVC的缺点

①复杂性高

对于业务比较简单的应用程序来说,使用MVC框架模式有点得不偿失。(理解:例如视图层大部分都是只需要简单的查询数据库中的数据,而不需要对数据做任何处理,这样在视图层和数据层之间加上service层,相对于直接在视图层调用数据层来说,增加了代码量,多产生了实例化对象。开发效率降低,运行效率降低)。

②视图对模型数据的访问效率低

采用MVC框架模型,会导致视图层访问数据层并且得到数据,需要调用很多次方法,会降低运行效率。

5.框架模式与设计模式

MVC是一种框架模式。
框架模式与设计模式这两者有一定的难辨解性,框架更注重于代码的重用性,设计模式而是设计重用。架构介于两者中间,部分代码重用,部分设计重用,部分分析重用。设计模式是软件的知识,无法直接使用代码表示,它是一种设计思想,设计模式的实例才可以用代码表示,我们常见的23种设计模式(如下图)中并没有MVC设计模式。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值