Я вижу некоторую документацию и блоги, но ничего, что объединяет все это. Если он существует, указателя на него может быть достаточно.
Я думаю, что понимаю некоторые основы, но, пожалуйста, поправьте меня, если я ошибаюсь.
- library = true означает, что Dagger должен проверять, что каждый @Provides в модуле используется для внедрения чего-либо в список классов, перечисленных в списке injects = { ... }
- library = false отключает эту проверку, потому что, возможно, вы используете этот модуль в нескольких местах/проектах, и не каждый @Provides используется.
- complete = true означает, что этот модуль может удовлетворять всем зависимостям, необходимым для всех классов, перечисленных в injects = { ... }
Я не понимаю, как работают include и addTo, и как их можно (или даже нужно) использовать для включения установки complete = true.
Например, скажем, я создаю исходный график, используя
ObjectGraph graph = ObjectGraph.create(moduleA, moduleB);
а затем я расширяю этот график с помощью ModuleC.
ObjectGraph extendedGraph = graph.plus(new ModuleA());
Мне кажется, что граф был построен из ModuleA и ModuleB, поэтому я хотел бы сказать, что ModuleC добавляет к оба ModuleA и ModuleB, но addTo допускает только один.
Должны ли мы сказать, что ModuleC включает в себя ModuleA и ModuleB, а затем сказать, что ModuleC завершен?