mvp和 mvvm 整理

mvp简述

  • mvp的结构


    image.png
  • mvp各个模块职责
  1. V
    保存视图状态,包含UI的具体操作等,如刷新,旋转,展示 ,以及与用户的交互
  2. m
    保存数据信息,包括DB,网络数据处理,以及附带的各种其他数据操作
    3.p
    起到m和v的链接作用,一些除v和m以外的逻辑操作,实际上是一个mananger 的角色

mvvm

  • 什么是mvvm

  • 整体架构


    image.png
  1. model
    Repository及其下方就是model了。Repository负责提取和处理数据。数据来源可以是本地数据库,也可以来自网络,这些数据统一有Repository处理,对应隐藏数据来源以及获取方式。总而言之model就是和数据以及数据操作相关的模块

  2. ViewModel
    ViewModel作为View和Model等其他模块的链接件 ,viewmodel持有livedata等数据,viewmodel 本身也应该有生命周期的意识 。实际上主要的逻辑都在viewmodel里

  3. view
    view就是视图层通常包含 activtiy, fragment,还包括viewdatabinding,通常由view 持有viewmodel

  4. databinder
    databinder其实也是mvvm实现的关键。Android中的数据绑定技术由DataBinding和LiveData共同实现。当Activity/Fragment接收到来自ViewModel中的新数据时(由LiveData自动通知数据的改变),将这些数据通过DataBinding绑定到ViewDataBinding中,UI将会自动刷新。

你可能感兴趣的:(mvp和 mvvm 整理)