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,所以复用时也要修改绑定的代码
相关推荐
蓝绿色~菠菜2 小时前
Multi-Agent 架构全景:10 种协作模式深度解析
人工智能·架构
智算菩萨2 小时前
ChatGPT 5.4在英语学习中的应用:经典专四英语散文《Spring Thaw》赏析
人工智能·学习·ai·chatgpt·机器翻译
balmtv2 小时前
GPT-4o推理能力深度拆解:统一多模态与端到端推理的架构革命
人工智能·架构
风酥糖2 小时前
在Termux中运行Siyuan笔记服务
android·linux·服务器·笔记
AnalogElectronic2 小时前
項目管理的核心重点知识(例如基于十大知识领域、五大过程组等通用架构)
架构
qq_571099352 小时前
学习周报三十六
学习
赋创小助手2 小时前
AMD OpenClaw:本地 AI Agent 运行平台解析,RyzenClaw 与 RadeonClaw 两种架构方案意味着什么?
服务器·人工智能·深度学习·自然语言处理·架构·数据挖掘·openclaw
野犬寒鸦3 小时前
从零起步学习计算机操作系统:进程篇(基础知识夯实)
java·服务器·后端·学习·面试
我的xiaodoujiao3 小时前
API 接口自动化测试详细图文教程学习系列2--相关Python基础知识
python·学习·测试工具·pytest