JavaWeb MVC的基本概念

        随着应用系统的逐渐增大,系统的业务逻辑复杂度都将以几何级数的方式增长。在这种情况下,如果采取传统的开发方法,将系统的所有处理逻辑都放在jsp页面中,那将是程序员的噩梦;无论我们要进行什么样的改变,都必须打开那些丑陋的jsp脚本进行修改。 而MVC思想的出现给程序员带来了福音。

        MVC思想是将系统的各个组件进行分类,不同的组件扮演不同的角色。然后将系统中的组件分隔到不同的层中,这些组件将被严格限制在其所在层内。同层中的组件应该保持内聚性,且大致处于同一抽象级别,而各层之间则以松散耦合的方式组合在一起,从而保证了良好的封装性。 

        MVC将一个应用的输入、处理和输出流程按照Mode、(模型)、View(视图)和Controller (控制器)三部分进行分离,这样一个应用就可以划分成模型层、视图层和控制层3个层。这3层之间以最少的耦合来协同工作,从而提高了应用系统的可扩展性和可维护性。对于程序员来说,可以更加高效和灵活地完成代码编写。 

        在经典的MVC模式中事件由控制器处理,控制器根据事件的类型改变模型或视图; 具体一点就是,视图与模型成多对一的关系,模型数据或状态的改变都会导致视图的变化。

1. 模型层

        模型层代表的是企业数据和其对应的业务逻辑,它控制着对数据的处理和更新。通常, 模型和现实世界对数据的处理非常相似,这就要求程序开发人员对模型的设计与现实世界应基本相近。业务处理的过程对于视图层和控制层来说是黑箱操作,模型层接受视图层(通 过控制层传送到)的请求数据,并返回最终的处理结果,以更新视图层。

2. 视图层 

         视图层实际上是模型层中的各个模型的具体表现形式。它通过模型得到企业数据,然后再根据需要来显示它们。虽然视图层对数据不做处理,而是将数据直接传送给控制层, 但它必须保持着与模型层的数据模型的一致性,即当模型层的数据发生变化时,视图层必须随之变化。为了达到这个目标,常常采用软件设计模式中的观察者模式,即视图层中的视图对模型层中的对应模型进行注册,这样一旦模型数据发生改变,就会通知视图层进行 相应的改变。

          另外,对于早期的web应用程序来说,HTML元素构成了视图界面的主要部分。在新式的web应用中,HTML依旧在视图中扮演着重要的角色。但是随着以此Web应用技术的发展,用户对视觉上的要求不断提高,一些新技术如Adobe flash和Siverlight等不断地涌现,给web界面的设计与实现带来了一个百花齐放的局面。

3. 控制层

          控制层在MVC结构中连接模型层和视图层,起到了纽带的作用。它将视图层的交互信息进行过滤等处理后,再传送到模型层相应的业务逻辑处理程序进行处理。

          在web应用中,视图层首先向控制层发送信息,通常是GET和POST请求,控制层接收到请求后,并不进行业务处理,而是把请求信息传递给模型,告知模型应该做什么处理。接着,模型接收请求数据,并产生最终的处理结果。模型层对应的动作包括业务处理和模型状态的改变。最后根据模型层产生的结果,控制层给用户(浏览器)回应相应的视图。MVC三层之间的关系如图。


猜你喜欢

转载自blog.csdn.net/u014572215/article/details/78327316