Кинжал для Android – полезность ключевого слова include

Для чего используется слово «включать» в dagger. Например, из документации вот модуль, определенный следующим образом:

@Module(
includes = {
    DripCoffeeModule.class,
    ExecutorModule.class
}
)
public class CoffeeAppModule {
}

Обратите внимание, как этот модуль, являющийся модулем приложения, включает в себя другие модули? Почему ? в чем полезность. Вы можете ознакомиться с примером здесь

Я не понимаю ключевое слово include в аннотации модуля, для чего оно используется?

из javadocs, описанного со следующим определением, которое все еще оставляет меня в замешательстве, может ли кто-нибудь привести пример:

включает дополнительные классы с комментариями @Module, из которых состоит этот модуль.

обновление: я думаю, что включение означает, что если у меня есть провайдеры в других модулях, скажем, в module1.java, то, если я «включу» module1.java в module2.java, он может видеть все методы провайдера в нем, и область действия модуля2 теперь увеличилось, это правильно?


person j2emanue    schedule 15.01.2015    source источник


Ответы (2)


Он используется для разделения вашего графика на несколько модулей. Таким образом, вы создаете свой ObjectGraph с вашим «корневым» модулем, который включает, возможно, несколько модулей (которые затем могут снова включать модули). Таким образом, вы разделите свои модули на логические группы.

person sebastian    schedule 15.01.2015
comment
Пример: github.com/ ДжейкВартон/u2020/blob/master/src/main/java/com/ - person Jake Wharton; 16.01.2015
comment
Эй, Джейк, я просто не понимаю, что делает «include» в твоем примере. Означает ли это, что U2020Module может видеть методы поставщика UiModule.class и DataModule.class? - чем это отличается от addto может помочь - person j2emanue; 26.01.2015

Думаю, теперь я понял. Включить — это то же самое, что «включить» в заголовки C или включить в xml-файлы Android, когда вы хотите включить внешнюю группу просмотра и т. Д. Это просто означает, что вы включаете сами методы модуля в файл. Это просто способ разделить код для его организации. Таким образом, «addsto» добавляет его к графику указанного вами модуля, а «включает» просто копирует код из этого модуля в файл.

person j2emanue    schedule 28.01.2015