外观
如何理解应用架构与单向状态流?
标准回答
UI 层展示状态并发送动作,状态持有者组织界面逻辑,数据层管理权威数据与外部访问。单向状态流让状态从明确来源进入 UI,操作再进入受控更新路径,减少多个回调直接修改不同 View 造成的不一致。
MVVM、Repository 或分层名称只是组织方式。真正需要说明的是依赖方向、状态所有者、线程、失败和生命周期。Repository 不应变成所有接口的无差别转发层,ViewModel 也不应持有与页面寿命冲突的 View 或 Activity 引用。
多屏会话适合由比单个页面更稳定的组件管理,页面重建只重连状态。长期任务是否使用系统调度组件,要看必须跨进程死亡恢复、后台执行限制和用户可见性要求;不能把常驻线程当作系统可靠后台能力。
追问与回答
为什么不直接在 Activity 调接口
简单一次性页面可以少分层,但复杂状态、复用和重建需求会让它难以维护;以真实复杂度决定抽象,而不是强行模板化。
如何验证架构有效
修改一个数据源或交互时,看是否能局部变化;同时检查状态是否可观察、错误是否统一、生命周期是否有明确归属。
易混淆点
- 只列 MVVM 等术语,却说不清状态由谁拥有。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q197