MVC简单认识

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

mvc不是一种编程语言,严格来说,它都不算是一门技术,它是开发软件时使用的一种“架构(框架)”。他就像是一种开发模式,或者是一个程序设计模板。

软件开发人员老生常谈的一个问题,就是软件开发过程中的变化,需求会变,技术会变,客户会变,老板会变,更痛苦的是PM也会变,开发过程中没有什么是固定不变的,改变会给软件开发带来非常大的变故,这些我们都无法改变,我们唯一能做的就是尽可能的减少变化带来的损失,mvc就是其中的一种解决方案。

MVC,Model View Controller,它是模型,视图,控制器的缩写,是将界面显示,业务逻辑和数据分离的一种模型,这样我们就可以在不更改逻辑的基础上修改界面显示。降低了界面和逻辑功能之间的耦合性,增加了代码复用性。

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和三层其实都是为了降低系统耦合性的,只是它们侧重点不同,它们没有好坏之分,只是适合不适合解决这个问题或者能否把它用好的问题。

时间: 2024-08-13 08:28:31

MVC简单认识的相关文章

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

出处:http://www.cnblogs.com/SeeYouBug/p/6401737.html 一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数据的操作的一个封转.可以分为视图模型(view model)和领域模型(domain models),视图模型就是在视图与控制器之间传输数据的一个封转,而领域模型就是业务逻辑,后台数据模型等的一个集

MVC简单分页

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

asp.net mvc简单分页实例

@{ ViewBag.Title = "Index"; } @{ int pageIndex = (int)ViewBag.CurrentPage; int pageCount = (int)ViewBag.Pages; } <h2>Index</h2> <table> <tr> <th>cateId</th> <th>cateName</th> <th>cateNote<

MVC 简单的AJAX异步分页+MYSQL

留资料,以后学习用 1.后台 public ActionResult textPage() { return View(); } [HttpPost] public ActionResult textPage(FormCollection collection) { //实例化对象 BLL.pc_dialog bll_pcdialog = new BLL.pc_dialog(); Model.pc_dialog model_pcdialog = new Model.pc_dialog(); //

Spring MVC简单原理

Spring MVC简单原理 针对有Java Web基础.Spring基础和Spring MVC使用经验者,文章比较简单,权当自己的一个总结和备忘吧. 前言 目前基于Java的web后端,Spring生态应该是比较常见了.虽然现在流行前后端分离,MVC和后端模板渲染越来越少,后端专注向前端提供数据接口.但由于笔者维护着一个老项目,既有JSP技术也有只返回JSON的接口,两者都是基于Spring MVC这一套技术实现的,所以暂且觉得了解一下Spring MVC原理还是有所裨益的. Spring M

ASP.NET MVC 简单事务添加

ASP.NET MVC 简单事务 //实例化查询上下文 using ( BookStoreEntities db = new BookStoreEntities()) { //找到需要价格和名称的数据实体对象 var book = db.Books.FirstOrDefault(x => x.Title == "ASP.NET NVC 程序开发"); if(book!=null) { //更改属性值 book.Title = "ASP.NET NVC 程序开发"

ASP.NET MVC 简单的分页思想与实现

, 作为一个程序猿,数据分页是每个人都会遇到的问题.解决方案更是琳琅满目,花样百出.但基本的思想都是差不多的. 下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MVC中的简单实现与应用. 一,定义分页器类 在ASP.net MVC中,分页的数据源可能是各种不同的类型,所以最好使用泛型来定义. public class PagingHelper<T> 二,基本三要素 实现分页人所共知的三个基本属性: DataSource:数据源,要知道数据源共计多少条数据

.Net框架搭建之1、SQL Server EF MVC简单三层框架

.Net简单三层框架简介 简单三层框架,是.Net开发中最最基础的框架了,由 数据访问层.逻辑处理层.表示层组成.一般情况下,在项目中数据模型Model层也是单独一层,但是只是单纯的数据模型不算在业务层划分当中. 好了,框架搭建,如果不了解,可能会觉得难以下手,了解之后,自然知道怎么做,只是其中的步骤,比起单纯的功能开发,是要繁琐不少,下面我们来一步一步搭建属于自己的框架,这里只列出重要步骤,其他未提到的细节可自行摸索. 数据模型Model层创建 数据模型层,首先要创建数据库,再从数据库生成EF

Asp.net MVC 简单入门

年前一直想写个系列教程来完整的过一下Asp.NET MVC,同时也可以帮助一些人来避免我在工作中遇到的坑,碰过的壁.缘于能力有限,时间也不充足,一直也没有能实现,幸好看到 Marla Sukesh 写了个7天教程,讲的挺好,就想顺便翻译过来給各位,为了不草率的应付,我会把原作者的某些实际操作截图替换成个人操作的截图,英文水平有限,请各位多多包涵. 菜鸟,请主动动手,不要眼高手低,不段动手才会发现问题. 大神,请留下宝贵的看法. 有问题或建议尽管提. 今天先简单用"Code First"