Sobes.tech
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 барои нишон додани равшан чӣ гуна зависимостҳоро бояд сохт, ки тавассути конструкторҳо автоматӣ наметавонанд сохта шаванд.