MVC笔记
简要论述对MVC模式的理解,并简述ThinkPHP中的MVC模式是如何运行的
MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。
MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。但是,将这些概念运用于基于Web的企业级多层应用领域也是很适合的。
在MVC结构中,模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)(可不可以简单理解为数据库,还有对数据库的增、删、查、改操作呢?)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。
当模型发生改变时,它会通知视图(View),并且为视图提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。
一个视图(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维持数据表现的一致性。视图同时将用户要求告知控制器(Controller)。
控制器(Controller)定义了应用程序的行为;它负责对来自视图的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视图作为对用户请求的应答。通常一组相关功能集对应一个控制器。
原网页:http://zhidao.baidu.com/link?url=vm1DS-k8AIoEAmrlbJknw-U0gCIEUlfIXIHqRJ4Kod3JQ_wdRW_UPTlo_YqSFqCb0PsSiPlIWo4pDl4hR5mc_K
MVC笔记的更多相关文章
- asp.net mvc笔记一,最小的MVC工程
Asp.net MVC项目默认会引用很多第三方插件,特别是现在的5.0,默认示例项目就几十M,搞得都不知道那些才是MVC必须的,是重点,那些是可有可无的. 今天我们就来试验一下,看看一个最小的MVC工 ...
- spring mvc 笔记
springmvc 课堂笔记 1.Springmvc是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, ...
- 【MVC 笔记】MVC 自定义 Attribute 属性中的猫腻
原想在 MVC Action 上加一个自定义 Attribute 来做一些控制操作,最先的做法是在自定 Attribute 中定义一个属性来做逻辑判断,可惜事与愿违,这个属性值居然会被缓存起来,于是于 ...
- Spring Mvc 笔记二之异常和文件上传
spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常 1.局部异常对单个controller有效;(在controller类写一 ...
- mvc 笔记
@{ ViewBag.Title = "主页"; } <div> 这里就是渲染Body啦.~~不需要写神马<asp:Content />,其实因为Rende ...
- .net mvc笔记4_依赖注入
一.Building Loosely Coupled Components MVC模式最重要的特点就是关注点分离.我们希望应用中的组件能尽可能的独立,相互之间即使有依赖也要在我们的控制之下. 在理想情 ...
- .net mvc笔记3_Understanding Razor Syntax
Understanding Razor Syntax MVC3新视图引擎的名字叫做Razor.ASP.NET视图引擎处理web页面,寻找包含在服务器端指令的特殊元素.正如我们前面已经提到的,标准的AS ...
- .net mvc笔记2_Essential C# Features
Essential C# Features 1.Using Automatically Implemented Properties public class Product { private st ...
- .net mvc笔记1_ The MVC Pattern
1.controller中的每一个public method被称为action method,意味着你可以从web上通过URL来调用它,以此来执行一个action. 2.当我们从action meth ...
随机推荐
- Sherpa | Complete Navigation System 介绍与教材
这里的夏尔巴人在iPad上使用的一种新的视频. 正如其名称所暗示的,夏尔巴人是所有您的导航需求的整体解决方案. 夏尔巴人带来了每个接口的三个主要的导航元素结合在一起 - 导航栏,侧边栏和页脚粘. 每一 ...
- c - 每位数字尾部加空格
/* input:一个4位整数. output:每位整数后紧跟一个空格的字符串. */ char * insert(char *s) { int len = strlen(s); * len + ); ...
- .net framework 注册到IIS上
首先要安装好所需的IIS版本和.net framework 各版本,注册方式如下: 1.1:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_re ...
- ArrayList 练习
ArrayList list = new ArrayList(); Random rd = new Random(); ; i <; i++) { , ); //是否包含当前数字 if (!li ...
- window下Slik SVN的安装配置
我相信各位都应该对SVN不会陌生吧,我相信绝大多数人都使用过,但是并不是人人都自己配置过SVN服务器.下面就是我配置SVN服务器的步骤,以及在配置过程中碰见的一些问题,在此记录,希望对你有所帮助. 安 ...
- nginx 配置文件解析(一)
nginx.conf user nginx; # nginx服务的运行用户 worker_processes ; # 启动进程数,通常设置成和CPU的数量相等 error_log /var/log/n ...
- sql 查找数据库中某字符串所在的表及字段
declare @str varchar(100) set @str='是否严格控制' --要搜索的字符串 declare @s varchar(8 ...
- jq改变DIV中图片的路径
<script src="common/jquery.js"></script> <script language="javascript ...
- GO求平均值
package main import "fmt" func main(){ sum:=0.0 avg:=0.0 xs:=" switch len(xs){ : avg= ...
- MATLAB cell 数组介绍
转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...