外观
MVVM 每一层到底做什么?
标准回答
View 负责展示与用户输入;ViewModel 把输入转成状态和动作;Model / 数据层负责业务数据与数据访问,常通过 Repository 统一网络和本地来源。
关键机制
- View:用户点击刷新,通知 ViewModel;观察 Loading / Success / Error,把状态画出来。
- ViewModel:决定何时刷新、调用 Repository、合并结果并更新页面状态。它通常不直接操作 View。
- Repository:调用接口或数据库、处理缓存策略并返回领域数据;具体传输交给网络客户端。
通俗例子
“调用数据”不是一层的准确职责。可以说:页面触发刷新,ViewModel 协调任务,Repository 获取数据,ViewModel 发布状态,页面渲染状态。
易混淆点
ViewModel 不会自动开线程,也不是进程死亡后的永久存储;不要长期持有 Activity、View 或其 Context。
参考资料
内容来源
- Android 技术札记 · 原条目
mvvm