web开发之MVC设计模式

来源:互联网 发布:js文字超出显示省略号 编辑:程序博客网 时间:2024/05/16 13:05

1、MVC模式简介

        百度百科中对MVC模式的定义:MVC全名是Model(模型) View(视图) Controller(控制器),是一种软件开发的设计典范。由此可见,MVC是一种规范,开发人员可以依据此规范进行开发工作。既然是一种规范,与自由开发相比,肯定具有明显的优势。

2、MVC模式的特点

        在以MVC模式为设计规范的应用程序中,应用程序显然是被分为Model、View、Controller三个部分。在Model部分,主要包含应用程序的业务逻辑(新增用户、删除用户、订单的添加或者修改等这一类动作)和业务逻辑中所使用到的相关业务数据(如数据库数据)、View部分主要是将Model的内容以一种友好的界面形式展现给用户,用户可通过界面进行相关操作(如在页面上进行新增用户信息的填写,选择要删除的用户进行删除),最后通过点击提交按钮向控制器发送用户请求、Controller负责协调Model和View,根据用户请求来选择调用哪个模块来处理业务,以及最终由哪个界面来为用户做出应答。MVC模式的这三个部分的职责非常明确,并且相互分离,每个部分都可以独立的改变而不影响其他部分,因此可以大大提高应用程序的灵活性和重用性。

3、Model、View以及Controller三个部分的交互关系

        (1)首先用户在界面(View)进行相关操作。如新增用户操作,用户信息填写完成后,点击提交按钮,向控制器(Controller)发送请求。当然在这个请求中肯定包含了相关的数据(如用户姓名、性别、年龄等信息)。

       (2)控制器(Controller)收到用户请求后,通过对用户请求进行分析(需知道用户想要完成什么样的业务功能),调用模型(Model)中相关的业务模块,同时将请求中的相关数据进行封装并将数据发送给该业务模块,然后选择接下来要展示给用户的视图(View)。

       (3)相关业务模块处理用户请求的业务功能,同时进行模型(Model)状态的维护和更新。

       (4)当模型(Model)状态发生改变的时候,模型(Model)会通知相应的视图(View),告诉视图它的状态发生了改变。

       (5)视图(View)接到模型(Model)的通知后,会向模型(Model)进行状态查询,获取需要展示的数据,并把这些数据在界面上展示出来。

4、MVC模式的应用-Java web开发

        早期的web开发是基于Servlet+JSP+JavaBean的架构,该架构是一个遵循MVC模式的架构。功能划分如下:

        JavaBean作为模型,既可以作为数据模型来封装业务数据,又可以作为业务逻辑模型来包含应用的业务操作。其中,数据模型用来存储或传递业务数据,而业务逻辑模型接收到控制器传过来的模型更新请求后,执行特定的业务逻辑处理,然后返回相应的执行结果。

        JSP作为视图,负责提供页面为用户展示数据,提供相应的表单(form)来用于用户的请求,并在用户点击提交按钮后向控制器发出请求来请求模型进行更新。

        Servlet作为控制器,用来接收用户提交的请求,获取请求中的数据,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法进行更新,同时根据业务执行结果来选择要返回的视图。

        Servlet+JSP+JavaBean架构的基本响应顺序:当用户发出一个请求后,这个请求会被Servlet接收到,Servlet将请求的数据转换成数据模型JavaBean,然后调用业务逻辑模型JavaBean的方法,并将业务逻辑模型返回的结果放到合适的地方,比如请求的属性里,最后根据业务逻辑模型的返回结果,由控制器来选择合适的JSP,通过JSP把数据展示给用户。

5、MVC模式的总结

        MVC模式的核心是解耦,模型不会依赖于视图,视图不会与模型的逻辑处理相关联,控制器负责协调二者的同步。MVC模式帮我们清楚的划分了各部分的职责,让开发人员各司其职,后台开发人员只关心业务逻辑的实现,也就是模型部分,而前台开发人员只需关心如何做到界面友好展示,也就是视图部分。如此一来,程序结构清晰会更加容易维护和扩展。
原创粉丝点击