MVC简单的认识
学习一个新知识,首先要了解的就是以下几个问题,它是什么?它能干什么?使用它有什么优点?这篇文章就环绕这几个问题来展开讨论。
mvc不是一种编程语言,严格来说。它都不算是一门技术。它是开发软件时使用的一种“架构(框架)”。他就像是一种开发模式,或者是一个程序设计模板。
软件开发者老生常谈的一个问题,就是软件开发过程中的变化,需求会变,技术会变。客户会变。老板会变,更痛苦的是PM也会变。开发过程中没有什么是固定不变的,改变会给软件开发带来很大的变故。这些我们都无法改变。我们唯一能做的就是尽可能的降低变化带来的损失,mvc就是当中的一种解决方式。
MVC,Model View Controller。它是模型,视图,控制器的缩写,是将界面显示,业务逻辑和数据分离的一种模型。这样我们就能够在不更改逻辑的基础上改动界面显示。减少了界面和逻辑功能之间的耦合性,添加了代码复用性。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDk0MjQ2NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Model层。也叫模型层,主要负责和数据交互的任务。
模型层主要功能有定义数据结构。从数据库读、取数据,数据格式验证,读数据进行加工处理。
model层类似与三层架构中的DAL
层。主要与数据库进行交互。而且进行简单的数据处理。
View层,即视图层,负责全部界面层的任务。事实上就是写入数据和显示数据。主要功能有获得数据,显示数据。决定界面技术(HTML,XML,Flash等)。界面排版;向Controller返回数据,决定数据传送方式,数据验证。
view层类似于三层中的UI层,主要是和用户进行数据交互的。
Controller层。集控制层。接受用户输入的数据。调用模型和视图完毕用户的需求。当用户单击超链接或者发送HTML表单时。控制器事实上不做不论什么的处理和输出,它仅仅是依据实际情况决定调用哪个模型或者视图去处理这个请求,然后决定使用哪个视图来显示返回的处理结果。
Controller层和三层中的BLL层不一样,由于它没有数据处理或者是逻辑处理功能,它仅仅是控制调用其它组件来完毕需求。
看一个简单的页面显示演示样例:
首先,页面响应用户的事件,然后向controller发送用户需求,controller依据用户需求调用model组件,model组件完毕数据操作,然后返回到controller。controller依据需求。选取相应view,将结果显示到界面。
能够看到,controller将界面显示和数据处理全然的分隔开了。减少了它们之间的耦合,开发者能够依据用户需求随意更改界面显示,而不用考虑数据处理的功能,这样,系统的耦合性很低。而且添加了下层代码复用性。
和三层的比較:
能够看出来。mvc和三层差别非常大。三层的划分是为了软件开发过程中不同阶段的代码封装问题,层次的划分添加了系统的灵活性,减少了系统耦合度(没有全然解决问题)。
三层架构能够应用在全部的软件开发中。mvc是为了解决页面的更换问题。把页面显示和业务逻辑分开。mvc把全部的页面显示放到view中。把数据操作和处理封装到了model中,controller进行总体控制。mvc是为了解决BS项目中界面显示和业务逻辑的耦合问题。
总结:MVC和三层事实上都是为了减少系统耦合性的,仅仅是它们側重点不同。它们没有好坏点,只是不适合解决这个问题,或者是否可以使用一个很好的问题。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
MVC简单的认识的更多相关文章
- MVC简单分页
对Car汽车表分页 实现简单分页,放在这里方便查看回顾,自定义每页几条有点问题,有待完善······ 1.新建mvc项目 2.添加linq to sql 数据库连接 3.添加CarBF类 using ...
- Spring mvc系列一之 Spring mvc简单配置
Spring mvc系列一之 Spring mvc简单配置-引用 Spring MVC做为SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块 ...
- Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...
- ASP.NET MVC 简单介绍①
ASP.NET MVC 简单介绍① 只做了重要描述,内容出自菜鸟教程网站内容. 目录 1布局 2HTML 帮助器 3.Razor 语法 4.添加样式 5.Layout 6. Controllers ...
- ASP.NET MVC 简单事务添加
ASP.NET MVC 简单事务 //实例化查询上下文 using ( BookStoreEntities db = new BookStoreEntities()) { //找到需要价格和名称的数据 ...
- ASP.NET MVC 简单分页代码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- MVC学习一:MVC简单流程
MVC学习一:MVC初次接触 1.MVC简单流程 1.1.服务器接收客户端请求后,解析URL(根据 路由表里配置的URL来分析 类名(控制器名)和方法名)根据请求的类名,创建对应的控制器类对象,并调用 ...
- Asp.net MVC 简单分页 自做简单分页
Asp.net MVC 简单分页: public static string Pager(int page,int pageSize,int total) { ...
- ASP.NET MVC简单编程之(二)经典路由篇
话题:请求从路由开始 在实际的ASP.NET MVC开发中,URL访问规则----路由的定义是非常重要的.因为任何一个请求都离不开路由.理解它,我们将能理解MVC处理请求的整个过程,灵活地定义系统各种 ...
- 小试牛刀MVC简单网页
上次我们创建了第一个MVC的网站,没用下,这次就简单来运行下,首先大家要去理解下MVC模式到底什么关系.在这里我就不多说,直接创建一个网页,用来显示一些数据,数据库的话我就先简单用这样创建先,为了方便 ...
随机推荐
- WPF-21:WPF实现仿安卓的图案密码键盘(初级)
希望大家有这方面好的代码给提供下,谢谢了! 想用C#做一个和手机上一样的图形密码键盘,貌似这方面资料比较少,虽然winphone手机上也有但是网上也没有这方面的代码.只好用常规的思维去实现一下,当然是 ...
- Javascript语言精粹之正则表达式知识整理
Javascript语言精粹之正则表达式知识整理 1.正则表达式思维导图 2.正则表达式常用示例 2.1 移除所有标签,只留下innerText var html = "<p>& ...
- 【Android】应用启动画面
几乎所有的Android应用程序都会有一个启动画面,展示自己的LOGO,本版信息,或者更人性化一点的,在很长的加载信息中,变换一些显示的文字等,让无聊的等待时间添加点调味剂. 具体实现来说,应该创建一 ...
- ASF (0) - ASF Java 项目总览
Apache .NET Ant Library This is a library of Ant tasks that help developing .NET software. It includ ...
- dij算法为什么不能处理负权,以及dij算法变种
对于上面那张图,是可以用dij算法求解出正确答案,但那只是巧合而已. 我们再看看下面这张图. dist[4] 是不会被正确计算的. 因为dij算法认为从队列出来的点,(假设为u)肯定是已经求出最短路的 ...
- bellman_ford算法
给定一个源点,求最短路径,那么存在以源点为根的最短路径树因为最短路径具有最优子结构的性质,所以我们可以先求出树的第一层,然后再求出树的第二层,以此类推bellman_ford算法就是按照这种思想求最短 ...
- 搭建solr单机版
solr单机版的搭建 一.solr单机版的搭建 1.运行环境 solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(ja),本教va写 ...
- UNIX环境高级编程——Linux进程地址空间和虚拟内存
一.虚拟内存 分段机制:即分成代码段,数据段,堆栈段.每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读.可写和可执行)一个 ...
- Git使用总结-so easy
一.Git的特性 Speed 速度(git是用c语言写的.一般都是提交到本地) Simple design Strong support for non-linear development (tho ...
- ubuntu12.04硬盘安装
ubuntu12.04发布了 , 安装又是一个话题.安装系统有很多方法,比如livecd,和u盘,但这些都需借用外部设备,所以硬盘安装是最好不过的方法了.u盘,cd安装都非常的简 单,对于那些讨厌用光 ...