18 Haziran 2009 Perşembe

IoC(Inversion of Control)

IoC ; bir çok framework ün modellenmesinde kullanılan, başlıca nesneye yönelik programlamaya ait kavramlardan biridir. Basitçe ne olduğunu anlatmaya çalışırsak;
genel olarak prosedürel programlama dillerinde , üst seviyeli modüllere bağlı alt seviyedeki bir modülün değiştirilmesi için üst seviyedeki modülünde tekrar bir elden geçmesi gerekir. Buda tekrar kullanılabilirliği öldürmektedir. Tersine bir bağımlılıktan bahsedilmesi ve bunun kontrolünün sağlanması IoC kavramını ortaya atmıştır gibi bir şeyler diyebiliriz sanırım. Nesneye yönelik programlama dillerinden birini kullandığımız zamanlarda da aynı hataya düşülebiliyor,
fakat bir çok open source framework IoC konseptine uygun bir ortam sağlıyor yazılım geliştiriciler için.

Avantajlarından kısaca bahsedersek;

Tekrar kullanılabilirlik artıyor, Kod tekrarı önleniyor, daha kolay test edilebiliyor yazılım vs.

Şimdi bir fremawork kullanmadan IoC modeline uygun örnek vermek gerekirse;


A ve B isminda iki classımız var ;


public class A{
private B b;

public A(){
b=new B();
}




a objesi doğrudan bir b objesi oluşturuyor.


Şimdi bu örneği ;




IoC modeline uygun hale getirirsek;



public class A{
private B b;

public A(){
}

public setB(B b){
this.b=b;
}

}


Hiç yorum yok: