ViewModelFactory need



我正在做一些kotlin基础知识的代码实验室,我并没有真正了解ViewModel的android,为什么有时似乎需要通过ViewModelFactory创建它。在这里你可以看到关于这个的代码实验室。

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

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

在使用ViewModelViewModelFactory之前,需要考虑以下几点

  1. ViewModelLifecycleAware Components
  2. CCD_ 5在CCD_
  3. ViewModelProvider' can only instantiateViewModel `不带参数构造函数

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

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

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

例如

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;
}
}

相关内容

  • 没有找到相关文章

最新更新