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,所以复用时也要修改绑定的代码
相关推荐
m4Rk_5 小时前
【论文阅读】Agent 记忆机制(87):VizoMem——把文本历史转化为可检索的视觉记忆
论文阅读·人工智能·学习·开源·github
梦帮科技6 小时前
LoRA / QLoRA 低秩矩阵流形更新:SVD 分解、秩与缩放因子 α 的物理意义与梯度稳定性保障
网络·深度学习·神经网络·线性代数·矩阵·架构·数据挖掘
天远数科6 小时前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化买手实名核验网关
运维·人工智能·架构·自动化
坤坤子吖6 小时前
算法学习——高精度加减乘除
c++·笔记·学习·算法
HY小宝F6 小时前
树莓派智能摄像头系统 30 天重学计划之 Day 03 · 网络基础:建立“包“的思维 —— 学习总结
网络·学习
光依旧6 小时前
MCP实战手记(八):从“能跑“到“能上线“——无状态MCP Server的生产落地清单
java·人工智能·spring boot·架构·ai agent·mcp
阿拉斯攀登6 小时前
从需求文档到方案-无人售货机纯视觉与免密支付
架构
事圆则缓6 小时前
Android 开启线程的几种方式:Thread、线程池、HandlerThread 与协程
android
dadaobusi6 小时前
学习:AXI协议
学习
xxwl5856 小时前
vue3的入门学习
前端·vue.js·学习