gpt4 book ai didi

android - ViewModelFactory 需要

转载 作者:行者123 更新时间:2023-12-02 12:45:21 25 4
gpt4 key购买 nike

我正在做一些 kotlin fundamentals 的代码实验室而且我并没有真正使用 ViewModel 进入 android,为什么有时似乎需要通过 ViewModelFactory 创建它。 Here你可以看到codelab其中谈到了这一点。

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

我一直在寻找答案,试图确认是只是传递额外的参数还是因为任何其他原因,但我仍然不确定,我还没有找到答案。

最佳答案

在使用 ViewModel 之前需要考虑一些事项和 ViewModelFactory

  • ViewModelLifecycleAware Components .
  • ViewModel生存configuration变化。
  • ViewModelProvider' can only instantiate ViewModel` 没有参数的构造函数。

  • Why do we need to use factory pattern?



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

    此外,您应该遵循依赖注入(inject)原则。一个类不应该创建它需要的依赖项。它应该被提供而不是创造。

    例如 -
    public class LogInViewModel extends ViewModel {
    private final LogInRepo repo;
    public LogInViewModel (LogInRepo repo) {
    /* this.repo = new LogInRepo(); Not recommended, It violates DI principle*/
    this.repo = repo;
    }
    }

    关于android - ViewModelFactory 需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61044315/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com