拥有多个Viewmodel(每个片段大约一个)是一种不好的做法吗?

时间:2018-08-06 17:06:14

标签: android android-fragments android-architecture-components android-viewmodel android-jetpack

我有一个项目,该项目具有1个主要活动和4个片段,所有片段均继承自同一“ BaseFragment”。

刚开始时,我在整个主要活动和片段中都使用相同的ViewModel来管理整个项目,但过了一会儿,内部的代码变得过于庞大,决定根据每个片段/活动的需要将其拆分为多个ViewModel。

我创建了一个“ MainViewModel”,并将其用于主要活动中,其余的ViewModels继承自该活动。

我的问题是减少ViewModel中的代码是否是一个好习惯?拥有多个视图模型也许效率低下吗? 还有什么其他方法可以简化它?

1 个答案:

答案 0 :(得分:4)

分离关注点几乎从来都不是一件坏事。理想情况下,每个文件/类都应负责一件事。

此外,您永远都不知道代码将如何增长。随着时间的流逝,事情只会变得越来越复杂,通常不会更简单。因此,尽管现在拥有多个viewModel可能感觉有些过头,但稍后可能会有所收获。

一个理想的情况是,多个片段之间共享一个视图模型,当这些片段需要彼此通信时,它们都将使用活动视图模型。

在这种情况下,我假设您可以同时使用这两种方法,尽管我从未做过,所以不能确定。