MVVM:复杂视图/视图模型 -> 多个 LiveData 对象?

dor*_*506 5 android mvvm android-livedata

大多数 MVVM 示例都处理非常简单的用户界面。

但是可以说我有一个有很多视图要更新的活动(即大量数据)

正如我在其他地方读到的,多个 ViewModel 对象是一种糟糕的模式。

所以,在我看来,有两种解决方案:

  1. 创建一个单独的对象(并为其创建一个 LiveData),该对象包含所有其他数据对象。
    但这有一个问题 - 每个更新的数据对象都会导致整个 UI 更新。

  2. 创建多个对象(并为其创建多个 LiveData 对象)。
    这意味着我需要观察每个 LiveData 对象。这个模式有问题吗?

提前致谢!

Pav*_*rma 2

您提到的第一点:是的,这不是最佳模式,但如果您的数据很小,那么分离 LiveData 会带来更多的工作,但收益却更少

您提到的第二点:是的,这是更优化的,您可以为要更新的每个视图拥有一个 LiveData 对象,并从您的活动或片段中观察它们。此模式中不存在任何问题。

关于多个 ViewModel: 如果一个 ViewModel 中发生太多事情(LiveData 对象或函数),那么同一 Activty/Fragment 中的多个 ViewModel 模式也是一种选择。这只建议使 viewModel 更轻。因此,仅当您有一个大型 viewModel 类时才使用它