优化 Android 应用架构:状态封装与分层设计
1. 优化 ViewModel 中的状态封装
在 Android 开发中,ViewModel 负责管理与 UI 相关的数据和状态。然而,在使用 ViewModel 时,我们可能会遇到 UI 层意外修改 ViewModel 中状态的问题,这违反了职责分离原则。下面我们将详细探讨如何解决这个问题。
1.1 问题分析
考虑以下 RestaurantsViewModel 类的代码:
class RestaurantsViewModel() : ViewModel() {
val state = mutableStateOf(RestaurantsScreenState(
restaurants = listOf(),
isLoading = true))
}
在这个代码中, state 是一个 MutableState 类型的公共变量。在 RestaurantsScreen 可组合函数中,我们可以直接访问并修改这个状态:
@Composable
fun RestaurantsScreen(onItemClick: (id: Int) -> Unit) {
val viewModel: RestaurantsViewModel = viewModel()
v
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



