Sobes.tech
Junior — Middle

Bağımlılık enjeksiyonu için Dagger kütüphanesinde anotasyonlar nasıl kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Dagger kütüphanesinde, Android'de bağımlılık enjeksiyonu için, nesnelerin nasıl oluşturulup sağlanacağını tanımlayan anotasyonlar kullanılır.

Ana anotasyonlar:

  • @Inject — Dagger'ın bağımlılığı enjekte etmesi gereken yapıcı, alan veya yöntemi işaretler.
  • @Module — Belirli bağımlılıkların nasıl oluşturulacağını anlatan @Provides anotasyonlu yöntemler içeren sınıf.
  • @Provides — Modül içindeki, bağımlılık nesnesi döndüren yöntemi anotlar.
  • @Component — Modülleri ve enjeksiyon noktalarını bağlayan, bağımlılık grafını oluşturmak için kod üreten arayüz.

Kullanım örneği:

@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);
        // Artık client Dagger tarafından başlatıldı
    }
}

Bu şekilde, anotasyonlar Dagger'ın bağımlılıkları otomatik olarak oluşturup iletmesini sağlar, böylece yönetimi kolaylaşır.