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)视图的作用是将取得的数据进行组织、美化等,并最终向用户终端输出。

MVC模式的更多相关文章

  1. Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )

    *****注意到mvc 在android 中是如何进行分层分域执行各自的功能.**** 官方推荐的按钮尺寸是48像素 前端之Android入门(1):环境配置 前端之Android入门(2):程序目录 ...

  2. ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

  3. [ASP.NET MVC 小牛之路]01 - 理解MVC模式

    本人博客已转移至:http://www.exblr.com/liam  PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各 ...

  4. 深入理解MVC模式

    一,什么是MVC模式 该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model).视图层(View).控制器(Controller) *Model(模型)表示应用程序核心(比如数据 ...

  5. MVC模式与Android

    MVC模式是软件工程中的一种软件架构,“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器”. MVC模式将一个交互式应用程序分为3各组件: 1.Model(模型):业 ...

  6. 浅析MVC模式与三层架构的区别01

    三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...

  7. MVC模式与三层架构和表示层

    1.MVC模式     - Model-View-Controller     - 模型-视图-控制器     - Model(模型)         > 模型分为业务模型,和数据模型     ...

  8. 谈谈JavaScript MVC模式

    第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  9. 生活中的MVC模式,一个吃货的理解。

    以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M  => Model       模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西.        ...

随机推荐

  1. XmlUtils.java

    package com.vcredit.framework.utils; import java.io.Writer; import org.apache.commons.lang3.StringUt ...

  2. MySQL主主复制+MMM实现高可用

    架构图: 环境规划 角色 IP VIP 用途 DB1 192.168.56.101 192.168.56.111/113 主Master提供wirte+read DB2 192.168.56.102 ...

  3. Angular工作笔记

    $watch中进行深层次操作时,配合radio或者checkbox的ng-click或ng-change操作,会使checkbox失效,不知原因

  4. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...

  5. 关于IOS音频的开发积累

    1.设置类别,表示该应用同时支持播放和录音 OSStatus error; UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; ...

  6. SSR———团队作业:小型论坛的设计与初步实现

    小型论坛的设计与初步实现 这次团队作业,我们设计的是一个小型论坛,作为团队中的一员,我主要负责对用户进行需求调研与对用户体验的过程拍摄总结,力求我们的项目在力所能及的范围内更加完美 视频:   度盘链 ...

  7. 使用struts的logic:iterate标签遍历列表时得到显示序号

    <logic:notEmpty name="sList" scope="request"> <logic:iterate id="e ...

  8. CS193P - 2016年秋 第一讲 课程简介

    Stanford 的 CS193P 课程可能是最好的 ios 入门开发视频了.iOS 更新很快,这个课程的最新内容也通常是一年以内发布的. 最新的课程发布于2016年春季.目前可以通过 iTunes ...

  9. Static方法在多线程环境下的运行

    最近看了Jfinal 一致对model的那个static final dao有些疑惑,全局一个实例安全吗?同时也出了一个疑惑,静态方法执行会有并发影响吗?看代码 StaticThread.java p ...

  10. javascript中的闭包、模块与模块加载

    一.前言 闭包是基于词法作用域(  和动态作用域对应,词法作用域是由你写代码时,将变量写在哪里来决定的,因此当词法分析器处理代码时,会保持作用)书写代码时所产生的自然结果,甚至不需要为了利用闭包而有意 ...