Junior — Middle
Чӣ гуна компонент Dagger-ро дар лоиҳа амалӣ кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Барои татбиқ кардани компонент Dagger дар лоиҳаи Android, лозим аст:
-
Интерфейси бо @Component нишонзанро эҷод кунед. Дар ин интерфейс методҳо барои таъмин кардани вобастагиҳо ё барои вуруд кардани вобастагиҳо ба синфҳои мақсадӣ эълон мешаванд.
-
Модулҳоро бо истифода аз нишони @Module муайян кунед, ки дорои методҳое бо @Provides мебошанд, ки чӣ гуна вобастагиҳоро эҷод карданро тавсиф мекунанд.
-
Дар коди барнома компонентро оғоз кунед, одатан тавассути синфе, ки истеҳсол шудааст, масалан DaggerAppComponent.builder().build(), ва онро барои вуруд кардани вобастагиҳо истифода баред.
Масалан:
@Component(modules = {NetworkModule.class})
public interface AppComponent {
void inject(MainActivity activity);
}
@Module
class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
// Дар MainActivity
public class MainActivity extends AppCompatActivity {
@Inject
Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Акнун retrofit барои истифода дастрас аст
}
}