mvvm框架介绍,以及和RecyClerView的关系
Recyclerview的介绍:https://www.jianshu.com/p/b4bb52cdbeb7
1,
MVP架构设计
MVP 是Mode、View、Persenter的简称,MVP中Mode负责数据、View负责界面、Persenter负责处理view和model之间的交互,在Android中由于MVC中把交互工作都放在controller中执行,也就是放在Activity中,使Activity变得臃肿,因此MVP实现了进化,在MVP中xml/Activity/Fragment都为View层,Persenter用来处理业务逻辑,Persenter与Model和View进行交互,是的View和Model耦合度降低,Activity工作得到了简化,项目中大致事情如下(具体怎么使用根据项目需求来):
Model层,主要负责数据的提供。Model层提供业务逻辑的数据结构(比如,实体类),提供数据的获取(比如,从本地数据库或者远程网络获取数据),提供数据的存储。
View层,主要负责界面的显示。View层不涉及任何的业务逻辑处理,它持有ViewModel层的引用,当需要进行业务逻辑处理时通知ViewModel层。
ViewModel层,主要负责业务逻辑的处理。ViewModel层不涉及任何的视图操作。通过官方提供的Data Binding库,View层和ViewModel层中的数据可以实现绑定,ViewModel层中数据的变化可以自动通知View层进行更新,因此ViewModel层不需要持有View层的引用。ViewModel层可以看作是View层的数据模型和Presenter层的结合。
————————————————
版权声明:本文为CSDN博主「chongyucaiyan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012317510/article/details/80247756
image.png
MVP中业务逻辑放在p层中处理,越来越复杂的业务逻辑还是会使P层变得臃肿。
2,MVVP Model -----View ----ViewModel
在使用 ListView 时候,会自定义 一个 ViewHolder.在 RecyClerView 中 是必须使用 ViewHolder 这主要是提高性能。因为不需要每次去调用findviewById 来获取View,其实ViewHolder 就是VIiewModel
MVVM是MVP的升级版,其中的VM是ViewModel的缩写,Model负责数据实体,View复杂界面对应xml和activity,ViewModel可以理解成是View的数据模型和Presenter的合体,负责Model和View之间的交互,处理业务逻辑,ViewModel和View层之间的交互通过谷歌的框架data-binding来完成,而Data Binding可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低,关注点分离更为彻底,同时减轻了Activity的压力。
浅析介绍点击按钮网络查询天气,查询成功后在界面上显示天气信息:
经典的mvvm:https://blog.csdn.net/u012317510/article/details/80247756
(ViewModel层不持有View层的引用,,,。View层不涉及任何的业务逻辑处理,它持有ViewModel层的引用)
深入介绍:https://blog.csdn.net/xiaoyu940601/article/details/56483383/
Android MVVM结合DataBinding的简单实用https://blog.csdn.net/qq_32209403/article/details/58594483
Android MVVM 入门教程,头条数据监测,,有问题版本,需要斟酌
https://www.jianshu.com/p/153ba1adf4cc
点击更新:
https://my.oschina.net/u/1175007/blog/613889
加值:
https://my.oschina.net/u/1175007/blog/613889