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)视图的作用是将取得的数据进行组织、美化等,并最终向用户终端输出。
MVC模式的更多相关文章
- Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
*****注意到mvc 在android 中是如何进行分层分域执行各自的功能.**** 官方推荐的按钮尺寸是48像素 前端之Android入门(1):环境配置 前端之Android入门(2):程序目录 ...
- ASP.Net MVC开发基础学习笔记:一、走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- [ASP.NET MVC 小牛之路]01 - 理解MVC模式
本人博客已转移至:http://www.exblr.com/liam PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各 ...
- 深入理解MVC模式
一,什么是MVC模式 该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model).视图层(View).控制器(Controller) *Model(模型)表示应用程序核心(比如数据 ...
- MVC模式与Android
MVC模式是软件工程中的一种软件架构,“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器”. MVC模式将一个交互式应用程序分为3各组件: 1.Model(模型):业 ...
- 浅析MVC模式与三层架构的区别01
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...
- MVC模式与三层架构和表示层
1.MVC模式 - Model-View-Controller - 模型-视图-控制器 - Model(模型) > 模型分为业务模型,和数据模型 ...
- 谈谈JavaScript MVC模式
第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 生活中的MVC模式,一个吃货的理解。
以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M => Model 模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西. ...
随机推荐
- linux常用命令(四)
1.压缩解压命令 gzip命令 默认为.gz格式文件 1.只能压缩文件不可压缩目录 2.不保留源文件 压缩 giz 解压 gunip tar命令 -c产生打包文件 -v显示相信打包压缩过程 - ...
- mysql_索引原理及优化
思考: 我们知道mysql最好的数据存储量级是百万级别,是的往往在百万级别或者几十万级别就会出现慢查询(我对慢查询的定义是大于1秒),几年前我所在的一个做pos机支付的联机交易的核心系统组,当时就做过 ...
- HTML/Elements/base
https://www.w3.org/wiki/HTML/Elements/base HTML/Elements/base < HTML | Elements List of Elemen ...
- Spring @Autowired注解在utils静态工具类
[转] 使用场景:在一个静态方法中,如何使用以下注入: @Autowired private ItemMapper itemMapper; @Component public class TestUt ...
- linux下安装svn server
1. yum install subversion 2. mkdir -p /home/svn/svnfile 3. svnadmin create /home/svn/svnfile 4. 进入co ...
- 微信小程序-WXSS
WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式. WXSS 用来决定 WXML 的组件应该怎么显示. 为了适应广大的前端开发者,我们的 WXSS 具有 ...
- QDirModel
#include "dialog.h" #include "ui_dialog.h" #include<QInputDialog> Dialog:: ...
- 使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)
正常情况下使用md5加密 var crypto = require('crypto'); var md5Sign = function (data) { var md5 = crypto.create ...
- Mac使用最多的软件,整理集合
软件资源 #[PDF移除密码]Cisdem PDFPasswordRemover 3.0.0 [TNT] #Alfred_3.1.1_737 #fwmso2016vlu2.0 #iHosts #Omn ...
- LeetCode Find the Celebrity
原题链接在这里:https://leetcode.com/problems/find-the-celebrity/ 题目: Suppose you are at a party with n peop ...