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,所以复用时也要修改绑定的代码
相关推荐
Rabitebla1 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件1 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
一个天蝎座 白勺 程序猿2 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
Decay__2 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
楚山之石3 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
Dawson Zhu4 小时前
【分布式训练④】张量并行与序列并行:把单层参数切碎分到多张卡
人工智能·语言模型·架构·aigc·agi
坤坤子吖5 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump5 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
码客-ygluu6 小时前
一个通用游戏数据服务器
c++·架构
炫酷的大高个9 小时前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源