mvc的controllerMVC框架理解及优缺点
MVC:模型(Model)、视图(View)、控制器(Control)
流程如下:
⾸先是视图向控制器发送请求,控制器再将业务请求发送给模型,
然后模型处理请求业务并把结果返回给控制器,控制器根据结果再选择
视图。
MVC的优点:
1、低耦合性:
视图层和业务层分离,这样就允许更改视图层代码⽽不⽤重新编译模型和
控制器代码。同样,⼀个应⽤的业务流程或者业务规则的改变只需要改动
MVC的模型层即可,因为模型与控制器和视图相分离,所以很容易改变应⽤
程序的数据层和业务规则。
2、⾼重⽤性和可适⽤性
MVC模式允许你使⽤各种不同样式的视图来访问同⼀个服务器端的代码。它
包括任何WEB(HTTP)浏览器或者⽆线浏览器(wap),例如:例如,很多数
据可能⽤HTML来表⽰,但是也有可能⽤WAP来表⽰,⽽这些表⽰所需要的仅令
是改变视图层的实现⽅式,⽽控制层和模型层⽆需做任何改变。
3、较低的⽣命周期成本
MVC使降低开发和维护⽤户接⼝的技术含量成为可能。
4、快速的部署
使⽤MVC模式使开发时间得到相当⼤的缩减,它使程序员(Java开发⼈员)
集中精⼒于业务逻辑,界⾯程序员(HTML和JSP开发⼈员)集中精⼒于表
现形式上
5、可维护性
分离视图层和业务层也使得WEB应⽤更便于维护和修改
6、有利于软件⼯程化管理
由于不同的层各司其职,没⼀层不同的应⽤具有某些相同的特征,有利于通过
⼯程化、⼯具化管理程序代码。
MVC的缺点:
1、增加了系统结构和实现的复杂性
2、视图与控制器间的过于紧密的连接
3、视图对模型数据的低效率访问
4、⽬前⼀般⾼级的界⾯⼯具或构造器不⽀持MVC模式,改造这些⼯具以适应
MVC需要和建⽴分离的部件的代价很⾼,从⽽造成使⽤MVC的困难
    缺点:
    ⼩型项⽬,反⽽会降低开发效率,虽然层与层之间相互分离,但之间关联性太强,没有做到独⽴的重⽤。增加了系统结构和实现的复杂性。视图对模型数据的低效率访问。
================以下转载=============================
⼀、MVC原理
:全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,⼀种典范,⽤⼀种业务逻辑、数据、显⽰分离的⽅法组织代码,将业务逻辑聚集到⼀个部件⾥⾯,在改进和个性化定制界⾯及⽤户交互的同时,不需要重新编写业务逻辑。
另:MVC是⼀种程序开发设计模式,它实现了显⽰模块与功能模块的分离。提⾼了程序的可维护性、可移植性、可扩展性与可重⽤性,降低了程序的开发难度。它主要分模型、视图、控制器三层。
1、模型(model)它是应⽤程序的主体部分,主要包括业务逻辑模块(web项⽬中的Action,dao类)和数据模块(pojo类)。模型与数据格式⽆关,这样⼀个模型能为多个视图提供数据。由于应⽤于模型的代码只需写⼀次就可以被多个视图重⽤,所以减少了代码的重复性
2、视图(view) ⽤户与之交互的界⾯、在web中视图⼀般由jsp,html组成
3、控制器(controller)接收来⾃界⾯的请求并交给模型进⾏处理在这个过程中控制器不做任何处理只是起到了⼀个连接的做⽤
⼆、MVC的优点
1、可以为⼀个模型在运⾏时同时建⽴和使⽤多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从⽽使所有关联的视图和控制器做到⾏为同步。
2、视图与控制器的可接插性,允许更换视图和控制器对象,⽽且可以根据需求动态的打开或关闭、甚⾄在运⾏期间进⾏对象替换。
3、模型的可移植性。因为模型是独⽴于视图的,所以可以把⼀个模型独⽴地移植到新的平台⼯作。需要做的只是在新平台上对视图和控制器进⾏新的修改。
4、潜在的框架结构。可以基于此模型建⽴应⽤程序框架,不仅仅是⽤在设计界⾯的设计中。
三、MVC的不⾜之处
1、增加了系统结构和实现的复杂性。对于简单的界⾯,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产⽣过多的更新操作,降低运⾏效率。
2、视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应⽤是很有限的,反之亦然,这样就妨碍了他们的独⽴重⽤。
3、视图对模型数据的低效率访问。依据模型操作接⼝的不同,视图可能需要多次调⽤才能获得⾜够的显⽰数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
4、⽬前,⼀般⾼级的界⾯⼯具或构造器不⽀持模式。改造这些⼯具以适应MVC需要和建⽴分离的部件的代价是很⾼的,从⽽造成MVC使⽤的困难。