MVVM、MVC、MVP的区别

MVVM、MVC、MVP的区别

MVVM、MVC和MVP是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
在单页面应用时,往往一个路由页面对应了一个脚本文件,所有的页面逻辑都在一个脚本文件里。页面的渲染,数据的获取,对用户事件的响应所有的应用逻辑都混合在一起,这样在开发复杂项目时,整个文件就会变得冗长,混乱,这样对项目开发和后期的项目维护是非常不利的。

MVC

MVC通过分离model,view和controller的方式来组织代码结构。其中view负责页面的显示逻辑,model负责存储页面的业务逻辑以及响应数据的操作,并且view和model应用了观察者模式,当model层发生改变的时候它会通知有关view层更新页面,controller层是view层和model层的纽带,它主要负责用户与应用的响应操作,当用户与页面产生交互时,controller的事件触发器就开始工作了,通过调用model层,来完成对model的修改,然后model层再去通知view层进行更新。

MVVM

MVVM分为model,view,viewmodel

  • model代表数据模型。数据和业务逻辑都在model层中定义
  • view代表UI视图,负责数据的展示
  • viewmodel负责监听model中数据的改变并且控制视图的更新,处理用户交互操作
    model和view并无直接关联,而是通过viewmodel来进行联系的,model和viewmodel之间有着双向数据绑定的联系。因此当model中的数据改变时会触发view层的刷新,view中由于用户交互操作而改变的数据也会在model中同步。
    这种模式实现了model和view的数据自动同步,因此开发者只需要专注于数据的维护操作即可,而不是要自己操作dom。
MVP

MVP模式与MVC模式唯一不同在于Presenter和Controller。在MVC模式中使用观察者模式,来实现当model层数据发生变化时,通知view层的更新。这样view层和model层耦合在一起,当项目逻辑变得更复杂时,可能造成代码的混乱,并且可能会对代码的复用性造成一些问题。MVP的模式通过使用Presenter来实现对view层和model层的解耦。MVC中的controller只知道model的接口,因此它没有办法控制view层的更新,MVP模式中,view层的接口暴露给了presenter。因此,可以在presenter中将model的变化和view的变化绑定在一起,以此来实现view和model的同步更新,这样就实现了对view和model的解耦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值