MVVM 学习

作为 MVVM 初学者,直接阅读官方权威文档是避坑和建立正确认知的最好方式。

在 Android 开发的演进中,MVVM 的实现经历了从“手动实现”到“官方库支持(Jetpack)”,再到“现代化异步流(Kotlin Flow)”的过程。

以下我为你整理的权威学习资源,按照概念 经典实现 现代标准的顺序排列,重点关注官方文档(Google Android Developers 和 JetBrains Kotlin)。


1. 基础理论:Observer / Observable (观察者模式)

这是 MVVM 的基石。虽然你不需要自己写一个 Observer 类(因为框架都封装好了),但理解其原理至关重要。

  • 权威定义 (Refactoring Guru): 这是一个非常棒的设计模式学习网站,图文并茂,适合初学者。
  • Android 中的体现:

2. 核心容器:Jetpack ViewModel

ViewModel 是 MVVM 中的 “VM”。它的核心作用是在配置变更(如屏幕旋转)时存活,防止数据丢失。


3. 第一代数据流:LiveData

LiveData 是 Google 为了解决 Android 生命周期问题而专门推出的 Observable。它在 2017-2020 年是 Android MVVM 的标准配置。

  • Google 官方指南: 解释了什么是“生命周期感知型”组件。
  • 关键特性:
    • 它知道 UI (Activity/Fragment) 什么时候是“活跃”的,避免后台更新 UI 导致崩溃。
    • 主要用于 Java 项目或早期的 Kotlin 项目。

4. 现代化标准:StateFlow / SharedFlow (Kotlin Flow)

这是重点! 如果你现在开始学习新项目,或者使用 Jetpack Compose,请将重点放在这里。StateFlow 是 Kotlin 语言层面的特性,比 LiveData 功能更强大,性能更好,且不依赖 Android 平台代码。

各种设计模式的集合:https://refactoringguru.cn/design-patterns/observer