2016-10-08 4 views
0

Я пытался добавить Кинжал 2 в свое приложение для Android. Насколько я понимаю, Dagger построит мой объект (который я пытаюсь вставить), пока его «зависимости предоставляются (в модуле)), или они вводятся с использованием некоторой формы инъекции (конструктор/метод).Кинжал 2: Предоставление зависимостей в прикладном модуле против инъекций

Я хотел бы знать, существует ли разница между тем, когда должна быть предусмотрена зависимость в модуле (например, Application Module), и когда ее «вводят с использованием инъекции конструктора», и если есть какое-либо правило, когда я должен делать это ?

ответ

2

Оба одинаковые. Инъекция конструктора в основном исключает необходимость использования метода поставщика. Как правило, я в основном использую его для классов с конструктором no-args для легкой инъекции, например, для классов Util.

2

На самом деле нет никакой разницы. Пока Кинжал знает, как построить экземпляр, это все, что имеет значение.

Причина в том, что у вас не всегда есть возможность использовать инъекцию конструктора, например, если класс является частью библиотеки, которую вы используете, но у вас нет source (и поэтому вы не можете добавить @Inject на один из конструкторов).

Смежные вопросы