MVC思想及其优势

来源:互联网 发布:石杉碱甲 知乎 编辑:程序博客网 时间:2024/04/29 19:38

    MVC并不是java语言所特有的设计思想,也并不是WEB应用所有的思想,它是所有面向对象程序设计语言都应该遵守的规范。

    MVC思想讲一个应用分成三个基本部分:Model(模型),View(视图),Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。

    起初,MVC模式是针对相同的数据需要不同的显示应用而设计的,其整体的效果如图所示:

    在经典的MVC模式中,事件由控制器处理,控制器根据事件的类型改变模式或视图,反之亦然。具体地说,每个模型队形一系列的视图列表,这种对应关系通常采用注册表来完成,即:把多个视图注册到同一个模型,当模型发生变化时,模型向所有注册过的视图发送通知,接下来,视图从对应的模型中获得信息 ,然后完成视图显示的更新。

    从设计模式的角度来看,MVC思想类似于一个观察这模式,但与观察这模式存在少许差别:观察这模式下观察者和被观察着可以使两个互相对等的对象,但对于MVC思想而言,被观察着往往只是单纯的数据体,而观察者则是单纯的视图页面。

    概括起来,MVC有如下特点:

        1.多个视图对应一个模型。按MVC设计模式,一个模型对应多个视图,可以减少代码的复制一代码的维护量,一旦模型发生改变,也易于维护。

        2.模型返回的数据与显示逻辑分离,模型数据可应用与任何显示技术,例如,使用JSP页面、Velocity模板或者直接产生Excel文档等。

        3.应用被分割成为三层,降低了各层之间的耦合,提供了应用的可扩展性。

        4.控制层的概念也很有效,由于它把不同的模型和视图组合在一起,完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。

        5.MVC更符合软件工程化管理的精神。不同的曾各司其职,每一层的组建具有相同的特征,有利于通过工程化和工具化产生管理程序代码。

    相对于早期的MVC思想,Web模式下的MVC思想则有存在一些变化,因为对于一个应用程序而言,我们可以将视图注册给模型,当模型数据发生改变时,及时通知试图页面发生该百年;而对于We应用而言,即使将多个JSP页面注册给一个模型,当模型发生变化是,模型无法主动发送消息给JSP页面(因为Web应用都是基于请求/响应模式的),只有当用户求求浏览该页面时,控制器才负责调用模型数据来更新JSP页面。

 

原创粉丝点击