У меня есть класс, который получает аргументы в конструкторе:
public class Dependency{
Dependency(int number1, int number2, int number3, DependencyListener listener){}
}
каждому зависимому классу необходимо указать путь к различным аргументам, чтобы создать экземпляр зависимости. Как мне определить модуль и компонент, чтобы другие классы могли его правильно инициировать, передавая разные значения и передавая «это» в качестве слушателя?
Кроме того, как мне использовать метод @Inject в этом случае?
Изменить 1
@ jeff-bowman Я думал об использовании следующего метода:
@Module public class DependencyModule {
int first;
int second;
int third;
DependencyListener listener;
public DependencyModule(int first, int second, int third, DependencyListener listener) {
this.first = first;
this.second = second;
this.third = third;
this.listener = listener
}
@Provides Dependency provideDependency(int first, int second, int third, DependencyListener listener) {
return new Dependency(first, second, third, listener)
}
}
@Component(modules = { DependencyModule.class }) public interface
DependencyComponent {
void inject(DependentClass1 target);
void inject(DependentClass2 target);
void inject(DependentClass3 target);
}
и в каждом DependentClass я бы сделал:
public class DependentClass{
@Inject Dependency;
public DependentClass{
DaggerDependencyComponent.builder().dependencyModule(new DependencyModule(first, second, third, this)).build().inject();
}
}
Это хорошая практика?