Sobes.tech
Junior — Middle

Чӣ гуна истифода бурдани қайдҳо дар китобхонаи Dagger барои ворид кардани вобастагиҳо?

sobes.tech AI

Ҷавоб аз AI

У бібліятэцы Dagger для укаранення залежнасцей у Android выкарыстоўваюцца анатацыі, якія апісваюць, як ствараць і прадастаўляць аб'екты.

Асноўныя анатацыі:

  • @Inject — адзначае канструктар, поле або метад, у які Dagger павінен укараняць залежнасць.
  • @Module — клас, які ўтрымлівае метады з анатацыяй @Provides, якія апісваюць, як ствараць пэўныя залежнасці.
  • @Provides — анатуюць метад у модулі, які вяртае аб'ект залежнасці.
  • @Component — інтэрфейс, які злучае модулі і месцы ўкаранення, генеруючы код для стварэння графа залежнасцей.

Прыклад выкарыстання:

@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);
        // Ҳоло, client дар Dagger оғоз шудааст
    }
}

Ин навор, анатацыі дазваляюць Dagger аўтаматычна генерыраваць код для стварэння і перадачы залежнасцей, спрошчваючы іх кіраванне.