Junior — Middle
Bog'lanishlarni injektsiya qilish uchun Dagger kutubxonasining ishlash prinsipi va tuzilishini tushuntiring
sobes.tech AI
AIdan javob
Dagger — bu Android va Java ilovalarida bog‘liq bo‘lishlarni (Dependency Injection, DI) uchun kutubxona. U kerakli obyektlarni (bog‘liqliklarni) avtomatik ravishda sinflarga taqdim etadi, bu esa bog‘liqlikni kamaytiradi va test qilishni soddalashtiradi.
Ishlash prinsipi:
- Dagger bog‘liqliklarni tasvirlash uchun anotatsiyalarni ishlatadi.
- Kompilyatsiya jarayonida, obyektlarni yaratadigan va ulashadigan kodlar ishlab chiqiladi.
- Bu yuqori samaradorlikni ta'minlaydi va ish vaqtida refleksiya (reflection)dan foydalanishni oldini oladi.
Asosiy komponentlar:
@Module—@Providesanotatsiyasi bilan belgilangan metodlar orqali bog‘liqliklarni ta'minlaydigan sinf.@Component— modullar va injeksiya nuqtalarini bog‘laydigan, bog‘liqliklar grafigini yaratadigan interfeys.@Inject— bog‘liqlikni qayerga injektsiya qilishni ko‘rsatadigan anotatsiya.
Misol:
@Module
class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Endi retrofit foydalanishga tayyor
}
}
Shu tarzda, Dagger bog‘liqliklarni markazlashtirilgan va samarali boshqarishga yordam beradi, ilova arxitekturasini yaxshilaydi.