传统的MVC模式
对于MVC模式,我们可以将可视化UI呈现,UI处理逻辑和业务逻辑分别定义在View,Controller,和Model中。
可视化UI呈现->View
UI处理逻辑->Controller
业务逻辑->Model
MVC模式中,这三者之间的交互并没有严格的限制,比喻允许View和Model直接交互
MVC模式的变体MVP
MVC是一种很广泛的概念,没有对View,Controller,Model之间设置一个严格的规则。所以对于特定的开发框架比如(ASP.NET Web Form),出现了MVC模式的变体。
在ASP.NET Web Form中,MVP中的M和V分别对应MVC中的Model和View,而P(Presenter)代替了Controller。MVP更多的变更时体现在这三者之间的交互上。
在MVP中,能够与Model进行直接交互的只能是Presenter,View只能通过Presenter调用Model。Model在这里保持独立性,与可视化元素的呈现(View)无关,与UI处理逻辑(Presenter)无关
MVP避免了View和Model之间的耦合,更进一步降低了Presenter和View之间的依赖。Presenter依赖的是一个IView的接口,即View实现的接口IView。
MVP三要素之间的交互主要体现在两方面,即View/Presenter和Presenter/Model。Presenter和Model之间,只是Presenter对Model的一个单项调用。而整个MVP之间的核心是View和Presenter之间的交互。依据View和Presenter之间的交互方式,以及View的职责,又将MVP划分为PV(Passive View)和SC(Supervising Controller)两种模式。
PV(Passive View)模式,即是一个被动的View,View不会涉及到任何UI处理的逻辑,所有针对UI元素(控件)的操作都不是View自身来控制的,而是交由Presenter来控制
-->采用PV模式来实现View,需要我们将View中UI元素通过属性的形似暴露出来。具体说就是定义IView接口的时候,需要定义基于UI元素的接口,是Presenter可以对View进行细粒度操作。在理想的情况下,定义IView接口的UI元素属性,应该与平台无关性,不使用控件类型直接定义。PV模式下,所有的UI处理逻辑都定义在Presenter中,接口IView中成员也会变得很多。
-->SC模式,降低了Presenter的复杂度,将简单的UI逻辑转移到View上,这些处理逻辑会在IView接口中定义。对View的操作,View本身并不进行相应,而是将请求转发给Presenter。Presenter针对Model调用,驱动View或者是创建View。
ASP.NET 中的MVC
ASP.NET MVC是建立在ASP.NET平台上,基于MVC模式建立的WEB应用框架。
自定义IHttpModule对Http请求进行拦截,解析出目标请求的Controller和Action。
自定义IttpHandler,对目标Controller激活。
ASP.NET MVC中的Model仅仅是绑定到View上的数据而已,不包含任何的UI逻辑代码。Model仅仅是基于View的,也可以称其为View Model。用于构建ASP.NET的MVC模式可以理解为M(Model)-V(View)-VM(View Model)-C(Control)
传统的MVC模式的更多相关文章
- 基于 Dojo toolkit 实现 web2.0 的 MVC 模式
前言 MVC 模式是设计模式中的经典模式,它可以有效的分离数据层,展示层,和业务逻辑层.Web2.0 技术由于其良好的用户体验被广泛应用于 WEB 应用的展示层.但是在传统的 web 开发中,展示层的 ...
- 《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式
原创文章,欢迎转载.转载请注明:关东升的博客 MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在Smalltalk语言中.现在,很多计算 ...
- 《从零開始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式
原创文章,欢迎转载.转载请注明:关东升的博客 MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之中的一个,它最早出如今Smalltalk语言中. 如 ...
- ASP.Net MVC开发基础学习笔记:一、走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- ASP.Net MVC开发基础学习笔记(1):走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- 二十八、带给我们一种新的编码思路——EFW框架CS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- Spring mvc 模式小结
http://www.taobaotesting.com/blogs/2375 1.spring mvc简介 Spring MVC框架是一个MVC框架,通过实现Model-View-Controlle ...
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...
- (转)浅析三层架构与MVC模式的区别
MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据 ...
随机推荐
- 有趣Web之Json(四)---json与(Object/List/Map)相互转化
干web报名时间.通常,他们需要json转换为Object/list/map要么Object/List/map转换为json,由能够编写代码的简单包装非常多,以减轻负担. 本文将给出json的一系列的 ...
- Enum:枚举
原文:Enum:枚举 枚举 (enum) 是值类型的一种特殊形式,它从 System.Enum 继承而来,并为基础的基元类型的值提供替代名称.枚举类型有名称.基础类型和一组字段.基础类型必须是一个内置 ...
- Serialization performance analysis
Serialization performance analysis http://www.skyscanner.net/blogs/serialization-performance-analysi ...
- css mainDiv和popbox居中
<style> .beCenter { width:460px; height:212px; background:#ccc; ...
- 框架Asp.net Identity
框架Asp.net Identity 在Asp.net上,微软的membershop框架经历了Asp.net membership到Asp.net simple membership,再到现在的Asp ...
- PHP 8: PHP的运算符
原文:PHP 8: PHP的运算符 本章将介绍PHP的运算符.运算符这个问题在每种语言里都有,因为我们已经熟悉了编程语言里的一种或是多种,所以只需要了解一下就行了.概括一下吧.PHP运算符有很多种,看 ...
- JavaScript的闭包特性
闭包是一个比较抽象的概念,尤其是对js新手来说.在这里,我就我个人的理解j简单谈一下: 闭包:官方解释是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部 ...
- 淘宝code
淘宝code 相信大家都听说过GitHub,也有很多人在用,但是GitHub毕竟在国外,速度不是很给力,而且安装过程也是很漫长.今天来给大家介绍一个国内的免费的开源项目平台,当然也是一个SVN版本控制 ...
- 使用jQuery热门功能实现
非常多站点上都有返回顶部的效果,本文阐述怎样使用jquery实现返回顶部button. 首先须要在顶部加入例如以下html元素: <p id="back-to-top"> ...
- 18 个最新实用的 jQuery 插件
1. Simple Effects for Drop-Down Lists 一个jQuery插件用于将普通的select控件转成一个带有一些简单扩展效果的下拉列表. 2. X-editable 这个插 ...