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