学习笔记:MVC与MVP区别

MVC


MVC(Model - View - Controller)(模型- 视图 - 控制器)。 MVC强调将用户的输入、数据模型和数据表示方式分开设计,一个交互式应用系统由模型、视图和控制器3个部分组成,分别对应内部数据、数据表示和输入/输出控制部分。

在这里插入图片描述


MVC的整个处理流程为:系统拦截到用户请求,根据相应规则(多数采用路由技术)将用户请求交给控制器,控制器决定哪个模型来处理用户的请求;模型根据业务逻辑处理完毕后将结果返回给控制器;然后控制器将数据提交给视图;视图将数据封装以后,呈现给用户。

MVP


MVP(Model - View - Presenter)(模型 - 视图 - 表示器)。这是近年来流行的一种体系结构。从名称上就可以看出,MVP与MVC十分类似。

在这里插入图片描述


MVP模型处理流程中:用户直接与视图进行交互(步骤1);视图通过引发一个事件,通知表示器有事件发生(步骤2),然后表示器访问视图以其IView接口所公开的属性(步骤3)。这些属性是视图实际UI元素的包装器;此后表示器调用模型(步骤4),再返回结果(步骤5);表示器转换数据,然后设置UI的值,该操作通过IView接口完成(步骤6) ;视图将最终页面显示给用户。

MVC和MVP区别


MVC与MVP的主要差异体现在“请求在何处访问系统”,以及“各部分如何联系在一起”。
MVP中的视图比MVC中的视图更加“被动”,视图引发事件,但是由表示器读取并设置UI的值。事实上,MVP模式设计的目的就是为了增强MVC模式,以尝试使视图更加被动,以便更容易更换视图。
但MVP模式存在的问题是,视图和表示器之间的联系比MVC模式中更加复杂,每个视图都有自己的接口,并且视图的接口特定于页面的内容,所以难以委托框架来创建视图,而必须由程序员手工完成创建。这也是微软等公司采用MVC实现框架,而不是MVP的原因。
内容来自
吕云翔.《软件工程理论与实践》[M].北京:机械工业出版社,2017.3
http://www.cmpedu.com/books/book/2063666.htm?tdsourcetag=s_pcqq_aiomsg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值