Sobes.tech
Junior — Middle

Na koji princip SOLID se odnosi korišćenje Dagger-a za ubrizgavanje zavisnosti?

sobes.tech АИ

Одговор од АИ

Upotreba Dagger-a za ubrizgavanje zavisnosti odnosi se na princip Princip inverzije zavisnosti (D) iz SOLID-a.

Ovaj princip kaže da:

  • Moduli višeg nivoa ne bi trebalo da zavise direktno od modula nižeg nivoa.
  • Oba treba da zavise od apstrakcija.
  • Apstrakcije ne bi trebalo da zavise od detalja, detalji treba da zavise od apstrakcija.

Dagger pomaže u implementaciji ovog principa pružajući mehanizam za automatsko ubrizgavanje zavisnosti putem apstrakcija (interfejsa ili apstraktnih klasa), čime se smanjuje povezanost komponenti i povećava testabilnost i fleksibilnost koda.

Primer korišćenja Dagger-a:

@Component
interface AppComponent {
    void inject(MyActivity activity);
}

class MyActivity {
    @Inject
    MyRepository repository;

    void onCreate() {
        DaggerAppComponent.create().inject(this);
        repository.loadData();
    }
}

Ovde, MyActivity ne kreira MyRepository direktno, već ga dobija putem ubrizgavanja zavisnosti, što je u skladu sa principom inverzije zavisnosti.