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.