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模式到底什么关系.在这里我就不多说,直接创建一个网页,用来显示一些数据,数据库的话我就先简单用这样创建先,为了方便 ...
随机推荐
- 【甘道夫】Apache Hadoop 2.5.0-cdh5.2.0 HDFS Quotas 配额控制
前言 HDFS为管理员提供了针对文件夹的配额控制特性,能够控制名称配额(指定文件夹下的文件&文件夹总数),或者空间配额(占用磁盘空间的上限). 本文探究了HDFS的配额控制特性,记录了各类配额 ...
- STM32W108无线传感器网络嵌入式uCOS-II的移植及实时环境监測
基于STM32W108无线开发板,将ucos-ii v2.86内核移植到其上,并加入用户任务.实现对温湿度.超声波.声音.光敏等传感器的控制及实时数据採集. 14.1开发环境说明 硬件:STM32W1 ...
- shell手册--笨鸟杰作
==================================================================================================== ...
- 当执行游戏0xc000007b错误的解决方法
如图,这个错误使无数玩家烦恼. 出现这个错误,可能是硬件的问题,也可能是软件的问题.可是,因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件解决此问 ...
- ORA-00020的思考
今天,历史的图书馆例行检查DB,发现alert.log有一"ORA-00020: maximum number of processes (150) exceeded",这是一个常 ...
- github源码开源区块链浏览器
<ignore_js_op> 帅爆了吧 https://blockexplorer.com/ github源码:https://github.com/bitcoin-blockexplor ...
- InnoDB行格式(compact,redundant)对照
InnoDB行格式分两种格式(COMPACT,redundant)默觉得COMPACT compact的存储格式为 首部为一个非NULL的变长字段长度列表,并且是依照列的顺序逆序放置的,当列的长度小于 ...
- leetcode先刷_Remove Duplicates from Sorted List II
删除重复节点列表中的.假设所有val如果仅仅是为了保持一个非常easy.应承担重复val节点被删除话.要保持pre节点.每当你想保存这pre问题节点,应该head节点可以被取出,好了,没问题边境控制. ...
- cidaemon.exe过程cpu入住率和关闭cidaemon.exe加工方法
问题叙述性说明: 这个时间机器始终是一个奇怪的问题:cidaemon.exe这个过程需要CUP率98%以上,大大影响了正常使用电脑.多个资源管理器出现cidaemon.exe过程,cpu率最高的一 ...
- Android程序猿学习路径
而一些工作,而不仅仅是通信毕业生,很多学生没有工作或熟练Android工作人员指导的情况下,,如何学习Android而提高Android更多关注的水平. 享: 1.Android知识 1.1.站点资源 ...