美文网首页
MVC,MVP,MVVM归纳

MVC,MVP,MVVM归纳

作者: Johnson_Coding | 来源:发表于2021-03-11 18:09 被阅读0次

MVC

M:model (模型,用于处理应用程序数据逻辑部分。如数据处理,mySQL数据库处理)
V:layout,view(视图,只负责页面展示逻辑和生命周期跟踪)
C:controller:(控制器:M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)Avtivity,fragment

1 将数据的获取与界面的展示分离(将数据分离到model中)
2 解决各层之间的通信问题 activity通知model获取数据 model通知activity刷新数据更新界面
优点:一定程度上实现了Model与View的分离,降低了代码的耦合性
缺点:Controller与View难以完全解耦,并且随着项目复杂度的提升,Controller讲越来越臃肿。
activity /fragment 承担Controller角色 承担业务逻辑 。
形成闭环(单向):用户操作---->view接受---->controller(业务逻辑处理)----->model(数据持久化)--->view(反馈给用户)

MVP

model 负责数据方面工作
view 负责视图方面的工作
presenter 负责model view的链接纽带

MVP与MVC区别

MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离方向。

1 Model 与view不再直接进行通信,而是通过中间层presenter来实现
2 activity的功能被简化 不再重当控制器,主要负责view层面的工作
不在形成闭环(双向操作) presenter与model和view双向操作,model和view完全隔离

MVP优缺点

优点:解决了MVC中Controoller与view耦合度过高的缺点 职责划分明显 更加易于维护
缺点:接口数量多,项目复杂度升高。随着项目复杂度提升,Presenter层将越来越臃肿。

MVVM

model-view-viewmodel的简写 ,

与mvp最大区别就是,mvvm在mvp的基础上实现了数据视图双向绑定(DataBinding)
做了两件事达到了数据的双向绑定:
一是数据绑定: 将【模型】转化成【视图】,将后端传递的数据转化成所看到的页面。
二是DOM事件监听。:将【视图】转化成【模型】,将所看到的页面转换成后端的数据。
具体流程是:View层的Activity通过DataBinding生成Binding实例,把这个实例传递给ViewModel,ViewModel层通过把自身与Binding实例绑定,从而实现View中layout与ViewModel的双向绑定。mvvm的缺点数据绑定使得 Bug 很难被调试。
model和viewmodel双向绑定,而model的修改
优点
1 减少了接口数量
2 数据绑定,极大简化代码,告别了繁琐的findviewById操作
缺点:
bug难以调试,代码复杂性增大,上手难度高。

相关文章

网友评论

      本文标题:MVC,MVP,MVVM归纳

      本文链接:https://www.haomeiwen.com/subject/hazgqltx.html