• MVC模式


                             1.MVC的概念

    1.1什么是MVC?

      MVC是一种架构型模式,它本身不引入新的功能,只是指导我们把web应用结构做的更加合理,实现逻辑与页面相分离。

    (1)视图:我们能直观的看到的web界面。

    (2)控制器:向系统发出指令的工具和帮手。

    (3)模型:模型的工作是按要求从数据库取出数据。

    1.2MVC解析

      在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。

      (1)模型部分包含了应用程序的业务逻辑和业务数据;

      (2)视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;

       (3)控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。

    1.3MVC包含三个部分和功能

    (1)Model 

    (I)封装应用状态   <-------封装数据(vo)

    (II)响应状态查询   <--------获取数据(vo)

    (III)暴露应用的功能 <---------逻辑层API

    (2)Controller

    (I)接收并验证HTTP请求的数据     <----收集数据,封装数据

    (II)将用户数据与模型的更新相映射<-----调用逻辑层API

    (III)选择用于响应的视图         <-----根据返回值选择下一个页面

    (3)View

    (I)产生HTML响应                 <------展示数据

    (II)请求模型的更新              <------触发事件

    (III)提供HTML form用于用户请求  <-----人际交互

     MVC中的模型和视图是分离的,解耦的,同一个模型可以对应多种不同的视图。

    1.4 MVC组件关系图

                     2.相关理论知识

    2.1  观察者模式初步

    (1)Java中的Swing组件,是MVC模式最典型的体现,在Java中跟MAC模式相关的一种常见实现方式,就是采用观察者模式。

    (II)观察者模式(也称发布-订阅模式)的定义:

    定义对象间的一种一对多的依赖关系;当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动跟新。

    2.2入口程序

      在网上经常被称为单一入口机制,单一入口指在一个web应用程序中,所有的请求都是指向一个脚本文件,例如我们经常看到某一个网站所有的页面都是index.php?xxxx这样的形式。所有对使用程序的访问都是必须通过这个入口。

                        3MVC理论深层次解释

    3.1改进版MVC组件关系图

    在实际开发Web应用的时候,大多数情况下是不会按照标准的 MVC去做的,通常我们都会把逻辑部分移动到逻辑层去做,那么Model就退变为只用来封装数据,也就是我们常写的VO;此时view一般不直接和逻辑层 去交互,所有跟逻辑层的交互都由控制器来做,view只和控制器交互。如下图所示:

    3.2MVC工作流初步认识

    (1)第一步:浏览者->调用控制器,对他发出指令。

    (2)第二步:控制器->按指令选取一个合适的模型 

    (3)第三步:模型->按控制器指令取相应数据

    (4)第四步:控制器->按指令选取相应视图

    (5)第五步:视图->把第三部取到的数据按用户想要的样子显式出来。

    3.3MVC作用

    (1)控制器的作用是调用模型,并调用视图。将模型产生的数据传递给视图,并让相关视图去显示。

    (2)模型的作用是获取数据并处理返回数据。

    (3)视图的作用是将取得的数据进行组织、美化等,并最终向用户终端输出。

  • 相关阅读:
    SimpleITK学习(二)图像读取
    SimpleITK学习(一)基本概念
    pydicom读取dicom文件报错
    【Python】模拟登录上海西南某高校校园网 (jaccount)
    Leetcode 5
    【C++】枚举类型及其用法
    Leetcode 617 合并二叉树
    【端口转发】如何在外面访问家里的内网计算机?
    Python字典列表字段重组形成新的字典
    Android使用JDBC连接数据库
  • 原文地址:https://www.cnblogs.com/heisaijuzhen/p/5352240.html
Copyright © 2020-2023  润新知