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,所以复用时也要修改绑定的代码
相关推荐
Android小码家32 分钟前
Framework之Launcher小窗开发
android·framework·虚拟屏·小窗
憧憬成为java架构高手的小白38 分钟前
docker学习笔记(基于b站多个视频学习)【未完结】
笔记·学习
赏金术士1 小时前
第七章:状态管理实战与架构总结
android·ui·kotlin·compose
辰海Coding1 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
云边云科技_云网融合2 小时前
企业大模型时代的网络架构五层演进:从连接到智能的范式重构
网络·重构·架构
Yunzenn2 小时前
字节最新研究cola-DLM第 01 章:语言生成的三次范式之争 —— 从 RNN 到 AR 到扩散
架构·github
她的男孩2 小时前
从零搭一个企业后台,为什么我把能力拆成 Starter 和 Plugin
java·后端·架构
啷里格啷2 小时前
第二章 Fast-DDS 整体架构与分层框架
后端·架构
DolphinDB2 小时前
漫长人工,耗费存储?用 BackupRestore 模块一站式解决跨环境数据同步难题
运维·后端·架构
闫记康2 小时前
Linux学习day5
linux·chrome·学习