Dagger 2 - статический экземпляр фабрики - PullRequest
0 голосов
/ 16 ноября 2018

Почему кинжал использует статический экземпляр фабрики, обеспечивающий зависимость? В этом случае INSTANCE имеет статическое время жизни и даже не требуется, когда зависимость не связана с какой-либо областью действия (в этом случае используется proxyProvidesSomeDependency). Почему даже при использовании с областью действия фабрика зависимости должна пережить зависимость или компонент, обеспечивающий эту зависимость? Я что-то упустил?

public final class FragmentModule_ProvidesSomeDependencyFactory
implements Factory<SomeDependency> {
    private static final FragmentModule_ProvidesSomeDependencyFactory INSTANCE =
            new FragmentModule_ProvidesSomeDependencyFactory();

    @Override
    public SomeDependency get() {
        return provideInstance();
    }

    public static SomeDependency provideInstance() {
        return proxyProvidesSomeDependency();
    }

    public static FragmentModule_ProvidesSomeDependencyFactory create() {
        return INSTANCE;
    }

    public static SomeDependency proxyProvidesSomeDependency() {
        return Preconditions.checkNotNull(
                FragmentModule.providesSomeDependency(),
                "Cannot return null from a non-@Nullable @Provides method");
    }
}
...