0
Я пытаюсь реализовать завод с Dagger2, но я не знаю, как это сделать?Как реализовать завод с Dagger2
В упрощенном примере:
public class Foo{
public interface Factory{
Foo createNew();
}
private Bar bar;
public Foo(Bar bar){
this.bar= bar;
}
}
я хотел бы установить метод, который обеспечивает Foo.Factory экземпляры
@Module
public class TestModule{
@Provides
Bar provideBar(){
return new Bar();
}
@Provides
Foo.Factory provideFooFactory(){
// ??????
}
}
Результат должен быть что-то вроде (получение экземпляра Bar от модуль, конечно):
new Foo.Factory(){
@Override
public Foo createNew() {
return new Foo(new Bar());
}
};
Каков правильный подход для достижения этого?
Зачем устанавливать интерфейс Factory, если вы можете использовать Провайдер в JSR330, с которым удобно кинжал. –
В документации говорится, что не использовать Провайдера, кроме устаревших приложений, вместо этого следует использовать шаблон Factory, но не дает никакого примера о том, как на самом деле сделать это с помощью кинжала. – trampster