mvp简述
-
mvp的结构
- mvp各个模块职责
- V
保存视图状态,包含UI的具体操作等,如刷新,旋转,展示 ,以及与用户的交互 - m
保存数据信息,包括DB,网络数据处理,以及附带的各种其他数据操作
3.p
起到m和v的链接作用,一些除v和m以外的逻辑操作,实际上是一个mananger 的角色
mvvm
什么是mvvm
-
整体架构
model
Repository及其下方就是model了。Repository负责提取和处理数据。数据来源可以是本地数据库,也可以来自网络,这些数据统一有Repository处理,对应隐藏数据来源以及获取方式。总而言之model就是和数据以及数据操作相关的模块ViewModel
ViewModel作为View和Model等其他模块的链接件 ,viewmodel持有livedata等数据,viewmodel 本身也应该有生命周期的意识 。实际上主要的逻辑都在viewmodel里view
view就是视图层通常包含 activtiy, fragment,还包括viewdatabinding,通常由view 持有viewmodeldatabinder
databinder其实也是mvvm实现的关键。Android中的数据绑定技术由DataBinding和LiveData共同实现。当Activity/Fragment接收到来自ViewModel中的新数据时(由LiveData自动通知数据的改变),将这些数据通过DataBinding绑定到ViewDataBinding中,UI将会自动刷新。