Sobes.tech
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.