学习一个新知识,首先要了解的就是以下几个问题,它是什么?它能干什么?使用它有什么优点?这篇文章就环绕这几个问题来展开讨论。

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简单的认识的更多相关文章

  1. MVC简单分页

    对Car汽车表分页 实现简单分页,放在这里方便查看回顾,自定义每页几条有点问题,有待完善······ 1.新建mvc项目 2.添加linq to sql 数据库连接 3.添加CarBF类 using ...

  2. Spring mvc系列一之 Spring mvc简单配置

    Spring mvc系列一之 Spring mvc简单配置-引用 Spring MVC做为SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块 ...

  3. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

    一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...

  4. ASP.NET MVC 简单介绍①

    ASP.NET  MVC 简单介绍① 只做了重要描述,内容出自菜鸟教程网站内容. 目录 1布局 2HTML 帮助器 3.Razor 语法 4.添加样式 5.Layout 6. Controllers ...

  5. ASP.NET MVC 简单事务添加

    ASP.NET MVC 简单事务 //实例化查询上下文 using ( BookStoreEntities db = new BookStoreEntities()) { //找到需要价格和名称的数据 ...

  6. ASP.NET MVC 简单分页代码

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  7. MVC学习一:MVC简单流程

    MVC学习一:MVC初次接触 1.MVC简单流程 1.1.服务器接收客户端请求后,解析URL(根据 路由表里配置的URL来分析 类名(控制器名)和方法名)根据请求的类名,创建对应的控制器类对象,并调用 ...

  8. Asp.net MVC 简单分页 自做简单分页

    Asp.net MVC 简单分页:   public static string Pager(int page,int pageSize,int total)         {           ...

  9. ASP.NET MVC简单编程之(二)经典路由篇

    话题:请求从路由开始 在实际的ASP.NET MVC开发中,URL访问规则----路由的定义是非常重要的.因为任何一个请求都离不开路由.理解它,我们将能理解MVC处理请求的整个过程,灵活地定义系统各种 ...

  10. 小试牛刀MVC简单网页

    上次我们创建了第一个MVC的网站,没用下,这次就简单来运行下,首先大家要去理解下MVC模式到底什么关系.在这里我就不多说,直接创建一个网页,用来显示一些数据,数据库的话我就先简单用这样创建先,为了方便 ...

随机推荐

  1. IOS程序设相关计开发技巧

    iOS programming architecture and design guidelines 原文地址:http://blog.mugunthkumar.com/articles/ios-pr ...

  2. 【C/C++】BinarySearch

    /* * BinarySearch.c * * Created on: 2014年6月25日 * Author: wenbo */ #include <stdio.h> int binar ...

  3. Oracle SQL Lesson (2) - 限制和排序数据

    重建scott用户@?/rdbms/admin/utlsampl.sql@--执行?--$ORACLE_HOME 字符区分大小写:SELECT last_name, job_id, departmen ...

  4. 数据结构 《18》----RMQ 与 LCA 的等价性 (一)

    前言     RMQ: 数组 a0, a1, a2,..., an-1, 中求随意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值     LCA: 求二叉树中两个节点的最低公共 ...

  5. 编C语言单元测试框架CUnit方法库

    /*********************************************************************  * Author  : Samson  * Date   ...

  6. Android应用开发-小巫CSDN博客client之显示博文具体内容

    Android应用开发-小巫CSDN博客客户端之显示博文具体内容 上篇博文给大家介绍的是怎样嵌入有米广告而且获取收益,本篇博客打算讲讲关于怎样在一个ListView里显示博文的具体信息.这个可能是童鞋 ...

  7. Nagios监控生产环境redis群集服务战

    前言:     曾经做了cacti上展示redis性能报表图.能够看到redis的性能变化趋势图,可是还缺了实时报警通知的功能,如今补上这一环节. 在redis服务瓶颈或者异常时候即使报警通知,方便d ...

  8. android studio学习

    http://blog.csdn.net/ryantang03/article/details/8948037 http://www.it165.net/pro/html/201109/676.htm ...

  9. Windows+Atlassian-Jira-6.0.4+MySql5.0安装破解汉化

     Windows+Atlassian-Jira-6.0.4+MySql5.0安装破解汉化 一:整理的安装程序 例如以下图: 文件太大.上传不到csdn上.有须要的联系. 新增的百度云盘下载:链接: ...

  10. 瑞丽的SQL-SQL Server的表旋转(行列转换)

    所谓表旋转,就是将表的行转换为列,或是将表的列转换为行,这是从SQL Server 2005開始提供的新技术.因此,如果希望使用此功能,须要将数据库的兼容级别设置为90.表旋转在某些方面也是攻克了表的 ...