mvc简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑汇集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不须要从新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。算法

模型(model)数据库

Java Web里说的是JavaBean,在JavaBean中除了其属性和字段,还能够有行为及其事件,JavaBean能够理解为普通Java对象。Java普通对象,就是符合Java规范的全部对象,这和实体类彻底是两回事。业务逻辑和数据访问应该放在Model层,也就是V负责展现数据,Controler除了转发不作业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。编程

视图(view)设计模式

视图是用户看到并与之交互的界面。对老式的Web应用程序来讲,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,架构

控制器 (controller)
控制器接受用户的输入并调用模型和视图去完成用户的需求。因此当单击Web页面中的超连接和发送HTML表单时,控制器自己不输出任何东西和作任何处理。它只是接收请求并决定调用哪一个模型构件去处理请求,而后用肯定用哪一个视图来显示模型处理返回的数据。 工具

MVC的优势性能

  大部分用过程语言好比ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度每每比较快,但因为数据页面的分离不是很直接,于是很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难知足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工做,但产品的结构清晰,产品的应用经过模型能够获得更好地体现。 设计

  首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其余系统的订单,但对于订单的处理都是同样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图便可解决问题。这样减小了代码的复制,即减小了代码的维护量,一旦模型发生改变,也易于维护。 其次,因为模型返回的数据不带任何显示格式,于是这些模型也可直接应用于接口的使用。 对象

  再次,因为一个应用被分离为三层,所以有时改变其中的一层就能知足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 接口

  控制层的概念也颇有效,因为它把不一样的模型和不一样的视图组合在一块儿完成不一样的请求,所以,控制层能够说是包含了用户请求权限的概念。

   最后,它还有利于软件工程化管理。因为不一样的层各司其职,每一层不一样的应用具备某些相同的特征,有利于经过工程化、工具化产生管理程序代码。

   

MVC的不足

  MVC的不足体如今如下几个方面:

  (1)增长了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增长结构的复杂性,并可能产生过多的更新操做,下降运行效率。

  (2)视图与控制器间的过于紧密的链接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是颇有限的,反之亦然,这样就妨碍了他们的独立重用。

  (3)视图对模型数据的低效率访问。依据模型操做接口的不一样,视图可能须要屡次调用才能得到足够的显示数据。对未变化数据的没必要要的频繁访问,也将损害操做性能。

  (4) 目前,通常高级的界面工具或构造器不支持MVC架构。改造这些工具以适应MVC须要和创建分离的部件的代价是很高的,从而形成使用MVC的困难。

相关文章
相关标签/搜索