(三)项目实战之MVVM架构设计

目前项目中使用【MVP+V视图代理】架构模式,业务需求不能增长。由于对视图的渲染放在了Presenter中,View和Presenter的交互会过于频繁。特别在修改视图的时候,Presenter有时也要跟着修改,View 出现方法

Presenter中除了业务逻辑以外,还有大量的View->Model,Model->View的手动同步逻辑,造成Presenter比较笨重,维护起来会比较困难

MVVM可以算是MVP的升级版,其中的VM是ViewModel的缩写,ViewModel可以理解成是View的数据模型和Presenter的合体,ViewModel和View之间的交互通过LiveData完成,可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低,关注点分离更为彻底,同时减轻了Activity的压力,UI层只关注UI展示,不关注逻辑内容,MVVM模式中,一个ViewModel和一个View匹配,它没有MVP中的IView接口,而是完全的和View绑定,已数据驱动。所有View中的修改变化,都会自动更新到ViewModel中,同时ViewModel的任何变化也会自动同步到View上显示。

涉及技术点参考google 官方https://developer.android.google.cn/jetpack/

MVVM 结构图与MVC,MVP 实现都三层

 

因为业务需求,我们开始MVVM架构设计,架构设计需要达到目标

1.Activity,Fragment UI显示层,与有效简洁方式实现数据显示,并不牵扯任何业务逻辑

2.ViewModel层之间可以进行数据通信

3.方便其他同事快速入手,专注业务逻辑

大致设计思路

         设计实现方面,UI层通过给方法添加注解方式,当请求获取数据之后操作通过类型匹配,回调到响应的注解方法

ViewModel层中包含一个通用型LiveData数据持有者,使用通用LiveData通知数据变动,达到更新UI方式

使用第三方开源库如RxJava,Retorfit,OkHttp,Gson。框架设计即将在项目3.0版本中使用

这个基础框架源码github上可以看到:https://github.com/Swer316828/LibBase

需解决问题:交互类操作。比如点击界面按钮,打开其他UI界面,但是先判断用户是否拥有权限,拥有则打开否则提示没有权限。如何通知UI层,要新建一个权限类?

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值