Junior — Middle
Ktoré princípy zo SOLID sa týkajú použitia Dagger na injekciu závislostí?
sobes.tech AI
Odpoveď od AI
Použitie Dagger na injektovanie závislostí súvisí s princípom Princíp inverzie závislostí (D) zo SOLID.
Tento princíp hovorí, že:
- Moduly vyššej úrovne by nemali závisieť priamo od modulov nižšej úrovne.
- Oba by mali závisieť od abstrakcií.
- Abstrakcie by nemali závisieť od detailov, detaily by mali závisieť od abstrakcií.
Dagger pomáha tento princíp implementovať tým, že poskytuje mechanizmus pre automatickú injekciu závislostí cez abstrakcie (rozhrania alebo abstraktné triedy), čím sa znižuje prepojenosť komponentov a zvyšuje testovateľnosť a flexibilita kódu.
Príklad použitia Dagger:
@Component
interface AppComponent {
void inject(MyActivity activity);
}
class MyActivity {
@Inject
MyRepository repository;
void onCreate() {
DaggerAppComponent.create().inject(this);
repository.loadData();
}
}
Tu MyActivity nevytvára MyRepository priamo, ale ho získava prostredníctvom injekcie závislostí, čo zodpovedá princípu inverzie závislostí.