为什么使用mvc框架(mvc框架和mvc模式)
mvc是什么,有什么用
mvc(model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:
模型(model),视图(view)和控制器(controller)。
m指
模型。即程序员编写程序应有的功能(实现算法等等),数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
模型(model)
用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“
model
”有对数据直接访问的权力,例如对数据库的访问。“model”不依赖“view”和“controller”,也就是说,
model
不关心它会被如何显示或是如何被操作。但是
model
中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此
model
的
view
必须事先在此
model
上注册,从而,view
可以了解在数据
model
上发生的改变。
微软msvc++视窗程序
的
mfc
document/view架构
是早期对于mvc模式的实现,mfc将程式分成cview以及cdocument两大类别,其中的document对应mvc中的
model
,view
相当于mvc中的
view+controller,再加上cwinapp类别,合成三大项。但是基本上mfc是一个失败的mvc模式作品。
MVC设计模式的最终目的是什么?
MVC (Model View Controller):M是指数据模型,V是指用户界面,C则是控制器。
使用MVC的目的是,将M和V实现代码分离。
也就是前台html表现层和后台php逻辑层分离。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
为什么框架要使用mvc模式?
大些的团队项目才考虑MVC的,各种业务人员相互分离了,搞界面美工的去做美工不用管别的事了
小项目代码混编的不易于分工和后续维护
再比如说美工辞职了,那怎么办,如果是MVC模式的,再换个搞美工的就好了,什么也不耽误。
不过那个2楼的说的很对啊,你小项目用它就得不了多少好处。
第一开发不见得快,团队优势出不来啊
第二你学框架还要时间吧
第三执行效率肯定不如嵌入模式啊,你一分离难免各种接口,各种解释,重复执行,分了很多层绕来绕去还不是要翻译成一样的是吧。
所以嘛,视情况而定,不一定就非得用它,只是个分工需要,可没吹的那么离谱。
什么是MVC设计模式,为什么使用MVC?
MVC(Model-View-Controller)把系统的组成分解为M(模型)、 V(视图)、C(控制器)三种部件。视图表示数据在屏幕上的显示。控制器提供处理过程控制,它在模型和视图之间起连接作用。控制器本身不输出任何信息和做任何处理,它只负责把用户的请求转成针对Model的操作,和调用相应的视图来显示Model处理后的数据。
用户界面逻辑的更改往往比业务逻辑频繁,尤其是在基于Web的应用程序中。例如,可能添加新的用户界面页,或者可能完全打乱现有的页面布局。对显示的更改,尽可能地不要影响到数据和业务逻辑。
目前大部分Web应用都是将数据代码和表示混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用需要一些额外的工作,但它带来的好处是无庸质疑的
个人对于spring mvc框架的理解
以下我的个人理解加上网络上的所查阅资料,对于spring mvc框架的一些总结,不足之处还望指出
????在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错,同时也为了组内开发人员之间的配合。总之就是一种分层工作的办法。
(1) 用户通过浏览器向服务器发送请求,请求被springmvc的前端控制器DispatcherServlet拦截;
(2) DispatcherServlet拦截到请求后,会调用HandlerMapping处理映射器;
(3) 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给调用处理器DispatcherServlet;
(4)DispatcherServlet会通过返回信息选择合适的HanderAdapter(处理器适配器);
(5)HanderAdapter会调用并执行Handler(处理器),这里的处理器值的就是程序中编写的Controller类,也被称之为后端控制器;
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet;
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)
(9)ViewReslover解析后,会向DispatcherServlet中返回具体的View
(10)DispatcherServlet对view进行渲染(即将模型数据填充至视图中)
(11)视图渲染结果会返回给客户端浏览器显示
(1)DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
(2)HandlerMapping接口:能够完成客户请求到Controller映射。
(3)Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。
(4)ViewResolver接口:Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。
????是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:
(1)截获符合特定格式的URL请求。
(2)初始化DispatcherServlet上下文对应WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
(3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。