Android架构学习笔记

Android架构学习笔记

1.1. MVC

缺点

  1. Activity即当View、又当Controller,代码很容易边得臃肿,难以阅读和维护;
  2. 很多业务逻辑放在Activity中,妨碍了业务模块的复用;

1.2. MVP

MVP解决了Activity即是View又是Controller的问题

增加了Presenter层,作为View和Model交互的中间纽带

优点

  1. 分离了视图逻辑和业务逻辑,降低了耦合,Activity只处理生命周期相关的任务,代码变得更简洁;
  2. 面向接口编程,Presenter层可以多种实现,也可以被多个View复用
  3. 把业务逻辑放到Presenter了,防止Activity持有一些业务相关的对象引发OOM的问题

缺点

  1. Presenter负责View的渲染,View和Presenter交互过于频繁,如果View层改变,Presenter也要跟着改变

1.3. MVVM

ViewModel层和Presenter层的作用类似,不同的是,使用了DataBinding将数据和UI进行了绑定

优点

  1. 很好的数据一致性,model层数据更新了,就会同步到View层
  2. 生命周期感知,避免内存泄漏

缺点

  1. 一个页面可能绑定了很多个LiveData,当显示错误时难以排查
  2. View复用性差,因为View都绑定了ViewModel,所以复用时也要修改绑定的代码
相关推荐
观无3 分钟前
微服务架构核心技术知识全景总结
微服务·云原生·架构
峥嵘life3 分钟前
Android 无线投屏相关知识介绍
android·学习
常利兵7 分钟前
安卓开发避坑指南:全局异常捕获与优雅处理实战
android·服务器·php
那我懂你的意思啦8 分钟前
微服务学习+商城
学习·微服务·架构
AI_零食11 分钟前
Flutter 框架跨平台鸿蒙开发 - 鸿蒙版本跳棋游戏应用
学习·flutter·游戏·华为·交互·harmonyos
Mintopia14 分钟前
技术人如何清晰表达:把复杂问题讲简单
架构
yangyanping2010815 分钟前
Go语言学习之Go Gin 生产级 flag 启动命令模板
开发语言·学习·golang
studyForMokey16 分钟前
【Android面试】OkHttp & Retrofit 专题
android·okhttp·面试
恋猫de小郭16 分钟前
抖音“极客”适配 Android 5 ~ 9 等老机型技术解读,都是骚操作
android·前端·flutter
黄林晴20 分钟前
Android Studio Panda 4 来了!AGP 9.2 升级,同步稳定性大幅修复
android·android studio