Junior — Middle
Dagger kutubxonasida bog'liqliklarni injektsiya qilish uchun qanday qilib anotatsiyalar ishlatiladi?
sobes.tech AI
AIdan javob
Dagger kutubxonasi Android uchun bog'liqliklarni in'ektsiya qilishda, obyektlarni qanday yaratish va taqdim etishni tavsiflovchi anotatsiyalarni ishlatadi.
Asosiy anotatsiyalar:
@Inject— Dagger in'ektsiya qilishi kerak bo'lgan konstruktor, maydon yoki metodni belgilaydi.@Module—@Providesanotatsiyasi bilan metodlarni o'z ichiga olgan sinf, bu qanday qilib muayyan bog'liqliklarni yaratishni tavsiflaydi.@Provides— Moduldagi metodni anotatsiya qiladi, bu metod bog'liqlik obyektini qaytaradi.@Component— Modullar va in'ektsiya joylarini bog'laydigan interfeys, bog'liqlik grafigini yaratish uchun kodni generatsiya qiladi.
Foydalanish misoli:
@Module
class NetworkModule {
@Provides
OkHttpClient provideOkHttpClient() {
return new OkHttpClient.Builder().build();
}
}
@Component(modules = {NetworkModule.class})
interface AppComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
OkHttpClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Endi client Dagger tomonidan boshlang'ich holatda
}
}
Shu tarzda, anotatsiyalar Daggerga bog'liqliklarni avtomatik ravishda yaratish va uzatishni ta'minlash imkonini beradi, bu esa boshqaruvni soddalashtiradi.