☰
第304篇 MVVM 与 DataBinding:数据驱动的开端
2026/11/3 10:44:30 网站建设 项目流程

承接上一篇《MVP 实践:Presenter 的职责与回调地狱》,那一篇末尾列出了 MVP 的三个短板——状态不可表达、旋转重建、接口膨胀。这一篇引入 MVVM,重点讲两件事:MVVM 如何用「一个状态值」解决第一个短板,以及DataBinding 这条技术路线在其中的位置。

结论先行:MVVM 的核心贡献是引入「状态」这个一等概念;DataBinding 是实现这一点的工具之一,但不是唯一路径。很多人把 MVVM 和 DataBinding 绑定成一对,这会带来一个常见误判——以为不用 DataBinding 就不是 MVVM。

一、MVVM 相对 MVP 的三个改进

1.1 改进一:状态从「多个方法」变成「一个值」

MVP 里五种界面状态用五个方法表示,MVVM 用一个值表示:

// MVP:五个方法,状态靠组合推断 interface View { fun showLoading() fun showSuccess(data: Data) fun showEmpty() fun showError(msg: String) fun showExpired() } // MVVM:一个状态值,状态即数据 sealed interface UiState { data object Loading : UiState data class Success(val data: Data) : UiS

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询