Junior — Middle
A Dagger használata függőséginjektáláshoz melyik SOLID-elvhez tartozik?
sobes.tech MI
Válasz az MI-től
A Dagger használata a függőséginjektálásban kapcsolódik a SOLID Dependencia Inversion Principle (D) elvéhez.
Ez az elv kimondja, hogy:
- A magasabb szintű moduloknak nem szabad közvetlenül függniük az alacsonyabb szintű moduloktól.
- Mindkettőnek az absztrakciókra kell támaszkodnia.
- Az absztrakciók nem függhetnek a részletektől, a részleteknek az absztrakciókra kell támaszkodniuk.
A Dagger segít megvalósítani ezt az elvet azzal, hogy mechanizmust biztosít az automatikus függőség-injektáláshoz absztrakciók (interfészek vagy absztrakt osztályok) révén, csökkentve a komponensek közötti kötődést és növelve a kód tesztelhetőségét és rugalmasságát.
Dagger használatának példája:
@Component
interface AppComponent {
void inject(MyActivity activity);
}
class MyActivity {
@Inject
MyRepository repository;
void onCreate() {
DaggerAppComponent.create().inject(this);
repository.loadData();
}
}
Ebben a példában a MyActivity nem hozza létre közvetlenül a MyRepository-t, hanem függőség-injektálással szerzi be, ami megfelel a Dependencia Inversion Principle-nek.