Junior — Middle
Ролаи аннотатсияи @Provides дар контексти Dependency Injection чист ва барои чӣ хизмат мекунад?
sobes.tech AI
Ҷавоб аз AI
Аннотация @Provides дархостҳо дар китобхонаҳои Вуруди Зависимӣ (масалан, Dagger дар Android) барои нишон додани методҳо истифода мешавад, ки зависимостҳоро месозад ва таъмин мекунад. Ин методҳо одатан дар модулҳо (@Module) ҷойгиранд ва масъуланд барои сохтани объектҳое, ки ба дигар қисмҳои барнома ворид карда мешаванд.
Масалан, агар шумо як синф дошта бошед, ки аз як хидмат вобаста аст, шумо метавонед як метод бо @Provides нависед, ки ин хидматро месозад ва имкон медиҳад, ки рамзи DI онро автоматӣ ба он ҷо, ки лозим аст, гузаронад.
Масалан:
@Module
public class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
Инчунин, @Provides барои нишон додани равшан чӣ гуна зависимостҳоро бояд сохт, ки тавассути конструкторҳо автоматӣ наметавонанд сохта шаванд.