Inversion of Control (IoC) Nedir ?

Merhaba Arkadaşlar,

Zaman buldukça öğrendiğim kavramları sizlerle paylaşmak istiyorum. Bu kavramlar gerçekten programlama dilinin aslında olmazsa olmazlarından bence ve mimariyi dillere göre değil de kavramlara oturtmak yapılacak en mantıklı işlerden olacaktır diye düşünmekteyim.

Inversion of Control aslında uygulamamızı bağımlılıklardan kurtaracak bir yapıdır diyebiliriz. Yani objelerin oluşturulma işlerini biz direk kod içerisinden değil de dışarıdan oluşturulması işine diyebiliriz. Buna örnek olarak framework’leri örnek gösterebiliriz. Ör: Spring Framework.  Hemen kod parçacığı olarak örnek verelim isterseniz:

Görüldüğü üzere yeni bir garaj objesi yaratılır yaratılmaz hemen ardından araba adında BMW objesi yaratılıyor. Bu demek oluyor ki oluşturma işini kod tarafında yapıyoruz. Peki ya Garaj gibi yüzlerce sınıfımızın oluşturulduğunu varsaysak ve BMW objesinin constructor’unu değiştirdiğimizi düşünelim. Bu durumda ne olacak peki ? Bütün sınıfların içerisini teker teker gezip constructor’leri mi değiştireceğiz ? Çok zor olur değil mi ?  Bu yüzden bu duruma şu şekilde bir çözüm getirebiliriz:

Kodumuzu yukaridaki gibi değiştirdiğimizde setAraba metodumuzla araba property’imizi dışardan her türlü IAraba‘dan türüyen obje ile değiştirme hakkımız oldu. Bunu aslında arka planda yapacak olan Framework’ler ile çalışma prensibini ortaya koymuş olduk. Bu sayede ileride yaşanabilecek sıkıntıları ortadan kaldırmış olduk ve kontrolün framework’e verilmesini sağladık.

Umarım açıklayıcı olmuştur. Aklınıza takılan her türlü soruyu buradan iletebilirsiniz 🙂

Bu yazı Yazılarım kategorisine gönderilmiş ve , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir