Sobes.tech
Middle+

Jaké jsou hlavní rozdíly mezi anotacemi SubComponents a Component v Daggeru?

sobes.tech AI

Odpověď od AI

@Component  
interface AppComponent {  
    // ...  
}  
  
@Subcomponent  
interface UserComponent {  
    // ...  
}  
  
// Příklad použití Subcomponent v AppComponent  
@Component(modules = AppModules.class)  
interface AppComponent {  
    UserComponent userComponent(); // Přidání továrního metody  
}  

Component:

  • Samostatný graf závislostí.
  • Může být kořenovým komponentem nebo závislostí pro jiné komponenty (pomocí dependencies).
  • Vytváří se pomocí továrního metody (create() nebo builder) v anotovaném rozhraní.

Subcomponent:

  • Rozšiřuje graf rodičovského komponentu.
  • Má přístup ke všem závislostem poskytovaným rodičovským komponentem.
  • Nemá vlastní závislosti (přes dependencies).
  • Vytváří se rodičovským komponentem přes tovární metodu.
  • Umožňuje vytvářet modulárnější a lépe spravovatelné grafy.