Angular :Dependency Injection nedir?
Bağımlılıklar (dependencies) bir sınıfın (class) işlevlerini yerine getirebilmesi için ihtiyaç duyduğu nesneler ve objelerdir.
Dependency injection bir classın bağımlılıkları oluşturmak yerine dış kaynaklardan talep ettiği bir Design Pattern’ dir.
Angular bağımlılıkları çözümlemek için kendi DI framework’ünü kullanır.
DI bir sınıf başlatıldığında o sınıfın bağımlılıklarını sağlar.
Uygulamalarınızda esnekliği ve modülerliği arttırmak için Angular DI kullanın.
Örnek olarak aşağıdaki gibi bir Angular service dosyası oluşturalım.
Burada @Injectable service dekaratörü Angular’ın bu servisi DI sistemi için kullanacağını belirtir.
providedIn: ‘root’ ile de sağlanan metadata’lar uygulamanın her yerinden erişilebilir anlamına gelir.
Yukarıda oluşturduğumuz HeroService içerisindeki getHeroes() fonksiyonunu componentimizde kullanmak istiyoruz.
HeroService örneğini constructor içerisinde inject ederek componentimizde bu servis işlev ve özelliklerini kullanabilir hale getiriyoruz.
Aslında burada componentimize bir bağımlılık eklemiş oluyoruz.(Dependecies)
Component içerisinde kullandığımız name property’ sini HeroService aracılığıyla sağlıyoruz.
Yani kısaca component içerisinde bu property ‘i üretmek yerine service aracılığıyla elde ediyoruz.
Dependency Injection ile yukarıda verdiğim örneği daha detaylı incelemek isterseniz buradan ulaşabilirsiniz.