学习ASP.NET MVC框架揭秘笔记-MVP

1.2.1                      MVP

MVP是一种UI架构模式,适用于基于事件驱动的应用框架。MVP中的M和V分别对应MVC的Model和View,而P(Presenter)代替了Controller。

在MVP模式中,能够与Model直接进行交互的仅限于Presenter,View只能通过Presenter间接地调用Model。Model的独立性在这里得到真正的体现,他不仅仅与可视化元素的呈现无关,与UI处理逻辑(Presenter)也无关。

MVP不仅仅避免了View和Model之间的深度耦合,更进一步的降低了Presenter对View的依赖。Presenter依赖的是一个抽象化的View,即具体View实现的接口IView,这带来的最直接的好处就是使定义在Presenter中的UI处理逻辑变得易于测试。由于Presenter对View的依赖行为定义在接口IView中,我们只需要Mock一个实现了该接口的View就能对Presenter进行测试。

Presenter和Model之间的交互很清晰,他仅仅体现为Presenter对Model的单向调用View和Presenter之间该采用怎样的交互方式是整个MVP的核心,MVP针对关注点分离的初衷能否体现在具体的应用中,很大程度上取决于两者之间的交互方式是否正确。按照View和Presenter之间的交互方式,以及View本身的职责范围,将MVP分为PV(Passive View)和SC(SuperVising Controller)两种模式。

1.PV与SC

2.View和Presenter交互的规则(针对SC模式)

3.实例演示:SC模式的应用

时间: 2024-10-12 15:51:23

学习ASP.NET MVC框架揭秘笔记-MVP的相关文章

学习ASP.NET MVC框架揭秘笔记目录

学习ASP.NET MVC框架揭秘笔记目录 第一章     ASP.NET+MVC 1.1传统的MVC模式 持续更新中,,,,

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(一)

IIS/ASP.NET管道 ASP.NET MVC就是建立在ASP.NET平台基础上基于MVC模式的Web应用框架,深入理解ASP.NET MVC的前提是对ASP.NET管道式设计有深刻的认识.由于ASP.NET Web应用大都寄宿于IIS上,接下来会介绍3个主要的IIS版本对各自Web请求的处理方式. 1.3.1 IIS 5.x与ASP.NET IIS 5.x运行在进程InetInfo.exe中,该进程寄宿着一个名为World WideWeb Publishing Service(简称W3SV

学习ASP.NET MVC框架揭秘笔记-实例演示:SC模式的应用

实例演示:SC模式的应用 为了对SC模式下的MVP,尤其是该模式下的View和Presenter之间的交互方式有一个深刻的认识,我们现在来做一个实例演示.我们采用员工查询的场景,用ASP.NET Web Forms来建立这个简单的应用. 我们先来定义员工的数据类型,Employee来表示一个员工,有5个属性:ID.姓名.性别.出生日期和部门. public class Employee { public string Id { get; private set; } public string

学习ASP.NET MVC框架揭秘笔记-传统MVC模式

1.1传统MVC模式 对于大部分面向最终用户的应用来说,他们都需要具有一个与用户进行交互的可视化UI界面,我们将这个UI称为视图(View).在早期,我们倾向于将所有与UI相关的操作糅合在一起,这些操作包括UI界面的呈现.用户交互操作的捕捉与响应.业务流程的执行及对数据的存取等,我们将这种设计模式称为自治视图(Autonomuous View  ,  AV). 1.1.1  自治视图 1.1.2  什么是MVC模式

学习ASP.NET MVC框架揭秘笔记-自治视图

1.1.1自治视图 一个典型的人机交互应用具有3个主要的关注点,既数据在可视化界面上的呈现.UI处理逻辑(用于处理用户交互式操作的逻辑)和业务逻辑.自治视图模式将三者混合在一起,势必会带来如下一些问题. 1.重用性.业务逻辑是与UI无关的,应该最大限度地被重用,但是若将业务逻辑定义在自治视图中相当于使他完全与视图本身绑定在一起.除此之外,如果我们能够将UI的行为抽象出来,基于抽象化UI的处理逻辑也是可以被共享的,但是定义在自治视图中的UI处理逻辑也完全丧失了重用的可能. 2.稳定性.业务逻辑具有

学习ASP.NET MVC框架揭秘笔记-什么是MVC模式

1.1.2什么是MVC模式 MVC的创建者是Trygve M.H.Reenskau,他是挪威的计算机专家,同时也是奥斯陆大学的名誉教授.MVC是他在1979年提出的一种主要针对GUI应用的软件架构模式. MVC体现了"关注点分离"这一基本的设计方针,他将一个人机交互应用设计的功能分为Model.Controller和View三部分,他们各自具有如下的职责. 1.Model是对应用状态和业务逻辑的封装,我们可以将它理解为同时包含数据和行为的领域模型.Model接受Controller的请

学习ASP.NET MVC框架揭秘笔记-View和Presenter交互的规则(针对SC模式)

2.            View和Presenter交互的规则(针对SC模式) View和Presenter之间的交互是整个MVP的核心,能否正确地应用MVP模式来架构我们的应用,主要取决于能否正确的处理View和Presenter两者之间的关系.在由Model.Presenter和View组成的三角关系中,核心元素不是View而是Presenter,Presenter不是View调用Model的中介,而是最终决定如何响应用户交互行为的决策者. View可以理解为Presenter委派到前端

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(二)

IIS7.0与ASP.NET IIS7.0在请求的监听和分发机制上又进行了革新性的改进,主要体现在引入Window进程激活服务(Windows Process Activation Service,WAS)分流了原来(IIS6.0)W3SVC承载的部分功能.IIS6.0中W3SVC主要承载着如下三大功能. 1.HTTP请求接收:接收HTTP.SYS监听到的HTTP请求. 2.配置管理:从元数据库(metabase)中加载配置信息对相关组件进行配置. 3.进程管理:创建.回收.监控工作进程. II

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(三)

ASP.NET管道 以IIS6.0为例,它在工作进程w3wp.exe中会利用aspnet_isapi.dll加载.NET运行时(如果.NET运行时尚未加载).IIS6.0引入了应用程序进程池的概念,一个工作进程对应着一个应用程序池.一个应用程序进程池可以承载一个或者多个Web应用,每个Web应用映射到一个IIS虚拟目录.与IIS5.x一样,每一个Web应用运行在各自的应用程序域中. 如果HTTP.SYS接收到的HTTP请求是对该Web应用的第一次访问,在成功加载运行时后,IIS会通过AppDom