月薪三万的面试题:谈谈你对MVC架构的理解

电脑杂谈  发布时间:2019-05-03 09:28:05  来源:网络整理

jsp的开发模式:mvc,三层架构_angularjs mvc架构_jsp mvc架构

面试不要紧张,华理的面试很正规,先是英语面试,由一个老师提问英语问题,老师说的很慢,都能听的清,今年一共问了我三个问题,第一个是说说你自己,我刚说了一点,他就打断我,问我第二个问题,你喜欢交什么类型的朋友,第三个问题是介绍你的学校,问题问完就是抽签英语翻译,我抽的是第一题,主要内容是关于工业革命时期控制的发展,英语先是读,然后是翻译,很会担心读不通顺,翻译不出来,我想说,平时多练练,有的翻译确实很难,你把你会的都说出来就行。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的mvc模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括bridge、builder、chainofresponsibility、flyweight、interpreter、mediator、memento、prototype,visitor。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的mvc模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括bridge、builder、chain of responsibility、flyweight、interpreter、mediator、memento、prototype、visitor。

什么是MVC?

MVC是Model—View—Controler的简称,它是一种架构模式,它分离了表现与交互。它被分为三个核心部件:模型、视图、控制器。

下面是每一个部件的分工:

随着互联网业务已经成为网络流量的主体,互联网业务已经从简单的网页浏览,不断丰富到高速下载、高清视频、游戏、电子商务、金融交易等,业务类型不断细分,不同业务对网络质量要求差异化也更加明显,当前粗放式经营的宽带ip城域网无法满足管道智能化、运营差异化、能力开放化的新型宽带服务需求。一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。4、c/s结构提供了高效率的业务处理,c/s结构可以对数据逻辑、业务逻辑和表示逻辑在不同的环境需求下进行组合,有效的划分数据和功能,最大限度的发挥它们的优势,提高业务处理效率。

View(视图),是程序呈现给用户的部分,是用户和程序交互的接口,用户会根据具体的业务需求,在View视图层输入自己特定的业务数据,并通过界面的事件交互,将对应的输入参数提交给后台控制器进行处理。jsp mvc架构

jsp的开发模式:mvc,三层架构_jsp mvc架构_angularjs mvc架构

Controller(控制器),Controller是用来处理用户输入数据,以及更新业务模型的部分。控制器中接收了用户与界面交互时传递过来的数据,并根据数据业务逻辑来执行服务的调用和更新业务模型的数据和状态。

通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

图: MVC (模型、视图、控制器)

MVC的控制流程是怎样的?

下面是MVC架构的控制流程:

angularjs mvc架构_jsp mvc架构_jsp的开发模式:mvc,三层架构

1. 所有的终端用户请求被发送到控制器。

2. 控制器依赖请求去选择加载哪个模型,并把模型附加到对应的视图。

3. 附加了模型数据的最终视图做为响应发送给终端用户。jsp mvc架构

使用MVC有哪些好处?

1. 各司其职,互不干涉

在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。

jsp的开发模式:mvc,三层架构_jsp mvc架构_angularjs mvc架构

2.有利于开发中的分工

在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。

3.有利于组件的重用

指令只封装 dom 操作,而组件代表一个自给自足的独立单元——有自己的视图和数据逻辑。而客户端则是安装在控制方使用机器上的一个程序,通常都做成图形界面,这样,在安装了客户端的机器上就可以操纵安装了服务端的机器(或者称中了木马病毒的机器),象查看对方的屏幕,窃取对方的密码,让对方死机等等,总之,凡是程序可以达到的功能,木马都可以做到,这就是所谓的远程控制,即用一台机器控制另外一台机器,只要这两台机器可以互相访问。目的:模型和视图分离开、使得一个模型可被多个视图使用、简单说就是同样的一个网站、用手机的视图(界面)和电脑的视图、可以共用一个模型。

目前,像Spring、Stuts、Hibernate等主流框架,都是遵照着MVC设计模式而设计的。

Hibernate:是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射模型也就是Model;

jsp的开发模式:mvc,三层架构_jsp mvc架构_angularjs mvc架构

Struts :提供的丰富标签是用于显示层View;同时struts也充当了实现Control的功能(不管是Struts1,还是Struts2),接收参数,视图分发。

Spring:是用于降低层与层间耦合度的,就是所有的类都可以由spring统一创建,用时只需注入即可(IOC)

另外:SpringMVC就是在MVC的技术上实现自己的功能的。

总之,程序设计使用MVC等设计模式,最终目的就是达到天人合一的“高内聚,低耦合”,甚至零耦合!

2018全新换装养成手游,撩翻你的少女心


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-95915-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...