我是Dagger
的新手,我之前用過Guice
。爲什麼匕首會注入具體的類?
我已閱讀本tutorial
,我很困惑:
1)爲什麼要我甚至用匕首注入混凝土構件? 在DI的所有點隱藏可替換實現的接口下。沒有?
我的意思是我可以使用Guice注入混凝土構件,但我只會在我想注入一個全局單例時做到這一點。
2)我有時看到模塊類與Inject
註釋。 爲什麼需要該聲明?編譯器可以使用@Provides annotation從返回的方法中引用它。沒有?
如果這是必要的,爲什麼它有時會失蹤?如下例:
@Module
class DripCoffeeModule {
@Provides Heater provideHeater() {
return new ElectricHeater();
}
@Provides Pump providePump(Thermosiphon pump) {
return pump;
}
}