ViewModelFactory需要

问题描述 投票:2回答:1

我正在执行kotlin fundamentals的一些代码实验室,而我实际上并没有使用ViewModel进入android系统,为什么有时似乎需要通过ViewModelFactory创建它。 Here您可以看到codelab对此进行讨论。

他们只是说要使用factory method pattern执行初始化,但我不明白为什么。为什么我们需要使用工厂模式?是因为我们需要将一些参数传递给ViewModel吗?还是因为其他原因?是不是每次我们需要创建一个ViewModelFactory只是为了将参数传递给ViewModel?

我一直在寻找答案,试图确认是只是传递额外的参数还是由于其他原因,但是我不确定并且我还没有找到答案。

android kotlin design-patterns android-viewmodel
1个回答
0
投票

使用ViewModelViewModelFactory之前需要考虑一些事项

  1. [ViewModelLifecycleAware Components
  2. [ViewModel幸存configuration更改。
  3. [ViewModelProvider' can only instantiate ViewModel`,带有无参数构造函数。

为什么我们需要使用工厂模式?

我们使用是因为要使其变为lifecycle-aware并更改为survive configuration。仅当您使用ViewModelFactory

时才可能

要实例化ViewModel,需要使用ViewModelFactoryViewModelProviders实用程序无法创建带有参数构造函数的ViewModel实例,因为它不知道如何以及在构造函数中传递哪些对象。

此外,您应遵循依赖关系注入原则。类不应创建所需的依赖项。应该提供而不是创建它。

© www.soinside.com 2019 - 2024. All rights reserved.