MVC、MVP、MVVM浅要理解记录

架构框架设计的出现,是为了解决一些问题与痛点。减少耦合,开发变得更简单,提高开发效率。
MVC的出现是为了:降低代码耦合度,减少重复代码,提高代码的重用性,并且在项目结构上更加清晰,便于维护。

MVC、MVP、MVVM是递进发展的前端框架。
MVP与MVVM是基于MVC发展出来的。解决的核心问题为,让开发者关注的点越来越少,更加专注于业务层的开发。
 

  • MVC

开发者需要同时关注Model、View、Controller,单向:V=>C=>M,M的改动会动过事件分发改变V的渲染。
缺点:视图逻辑不够解耦,耦合度相对高,需要关注三方。
pureMVC
纯正MVC,每个功能都有Model、View、Controller,代码量太多。

 

  • MVP(Model、View、Presenter)

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方 Presenter负责逻辑的处理,Model提供数据,View负责显示。

特点:

  1. 各部分之间的通信,都是双向的。

  2. View 与 Model 不发生联系,都通过 Presenter 传递。

  3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

优点:

  1. 模型与视图完全分离,我们可以修改视图而不影响模型。
  2. 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部。
  3. 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。
  4. 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)

M与V不直接联系。降低了耦合度。P作为中介者,处理V与M。开发者更多的关心V与P,M与P。
缺点:P会显得庞杂。

MVP和MVC的区别:
MVC中view和model是可以直接进行访问的,但是MVP中,不可以直接进行,需要Presenter来作为桥梁,所有的交互在presenter中进行,这样能够使view和model完全独立,修改试图也不会影响model。

 

  • MVVM

M与V不直接联系。比MVP多了binding 也就是绑定器
双向数据绑定,改变了V或者M,三方都改变。让开发者业务更加专注。更加解放了开发者,提高效率。
数据驱动。
适合开发大型的项目。
缺点:由于双向绑定,是如果出了问题,定位相对难。如果改变M的时候,不立即改变V,需要做特殊处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值