Middle+
Aké sú hlavné rozdiely medzi anotáciami SubComponents a Component v Dagger?
sobes.tech AI
Odpoveď od AI
@Component
interface AppComponent {
// ...
}
@Subcomponent
interface UserComponent {
// ...
}
// Príklad použitia Subcomponent v AppComponent
@Component(modules = AppModules.class)
interface AppComponent {
UserComponent userComponent(); // Pridanie továrnej metódy
}
Component:
- Samostatný graf závislostí.
- Môže byť koreňovým komponentom alebo závislosťou pre iné komponenty (pomocou
dependencies). - Vytvára sa pomocou továrnej metódy (
create()alebo builder) v anotovanom rozhraní.
Subcomponent:
- Rozširuje graf rodičovského komponentu.
- Má prístup ku všetkým závislostiam poskytovaným rodičovským komponentom.
- Nemá vlastné závislosti (cez
dependencies). - Vytvára sa rodičovským komponentom pomocou továrnej metódy.
- Umožňuje vytváranie modulárnejších a spravovateľnejších grafov.