Sobes.tech
Junior — Middle

Dagger yordamida bog'liqliklarni kiritishda SOLID ning qaysi prinsipiga taalluqlidir?

sobes.tech AI

AIdan javob

Daggerni foydalanish, SOLID ning Dependency Inversion Principle (D) prinsipiga tegishlidir.

Bu prinsip shuni ta'kidlaydi:

  • Yuqori darajadagi modullar past darajadagi modullarga to'g'ridan-to'g'ri bog'liq bo'lmasligi kerak.
  • Ikkala ham abstraktsiyalarga bog'liq bo'lishi kerak.
  • Abstraktsiyalar detallarga bog'liq bo'lmasligi kerak, detallar abstraktsiyalarga bog'liq bo'lishi kerak.

Dagger bu prinsipni amalga oshirishga yordam beradi, u abstraktsiyalar (interfeyslar yoki abstrakt sinflar) orqali avtomatik bog'lanishni ta'minlovchi mexanizmni taqdim etadi, bu komponentlarning bog'liqligini kamaytiradi va kodning test qilinishini va moslashuvchanligini oshiradi.

Daggerdan foydalanish misoli:

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

class MyActivity {
    @Inject
    MyRepository repository;

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

Bu yerda, MyActivity to'g'ridan-to'g'ri MyRepository ni yaratmaydi, balki bog'liqliklarni in'ektsiya qilish orqali oladi, bu Dependency Inversion prinsipiga mos keladi.