| Editor Login | Register | ||
| > Bilgisayar > Nesne Programlama > vb.net |
|
|
| Interface Kullanımı | ||||||||
Tekrar merhaba; bu yazıda interface kavramını irdeleyeceğiz. Interface prosedürlerin, property’lerin ve event’ ların yapısını (bunların isimlerini, parametrelerinin nasıl aktarılacağı ve geri döndürülecek değerleri) belirler. (Terimlerin İngilizce karşılıklarını kullanmak benim de çok hoşuma gitmiyor ama anlam açıklığı için bu şekilde kullanacağım.) Interface’ler nesnenin sağlayıcısı ile onu kullanacak istemci arasındaki bir anlaşmadır aslında. Bu sayede sunucu, istemcinin belli şartları sağlamasını mecbur tutabilir. Bu sayede özellikle versiyon farklılıklarında doğacak sorunların giderilmesinde kullanılabilirler. Başka bir açıdan interface’ler şöyle yorumlanabilir. Nesnenin kullanıcıya açılan penceresidir interface. Kullanıcıya açılan pencere? Yani kullanıcıyı nesneyle etkileşime geçiren yapı. Teoriyi pratikte düşünürsek nesnenin public birimleri bir interface oluşturur. Çünkü public birimler doğrudan kullanıcıya açıktır. Bu temel interface’e native ya da primary interface adı verilir. Aynı mantıkla private birimler interface’in bir parçası değildir. Fakat altının çizilmesi gereken bir nokta; interface’ler nesnenin sunucusu ile istemcisi arasında iletişimi sağlar. Örneğin bir fonksiyonun alacağı parametre şartlarını belirler ama fonksiyonu barındırmaz. Yani interface’lerden bahsederken bizim için önemli olan birimlerimizin (sub,function,evetent..) tanımlamalarıdır. Interface TanımlamaGenel kabul olarak interface’lerin önüne I belirteci eklenir. Public Interface IOrnekInterface Dikkat ederseniz fonksiyon ve yordamın sadece yapısı belirtiliyor. Interface içinde overloading de kullanılabilir. Örneğin;
Interface’i Dahil Etme (implemantation) Interface’i dahil etme için Implements deyimi kullanılır.
Vb’daki interface kullanımındaki bulanıklıklar Vb.NET ile giderilmiş durumda. Herhangi bir metodu bir interface’in belli bir metodunu karşılayacağını aşağıdaki şekilde belirtiyoruz.
Yukardaki örnekteki interface’i (IOrnekInterface’i) kullanmak istersek, interface’in şart koştuğu yapıyı desteklemek zorundayız. Örneğin;
Interface’in şart koştuğu tüm birimlerin karşılandığına dikkat edin. Şu aşamadan sonra nesnenin native interface’ini değil de IOrnInterface’ini kullanabiliriz. Bu işlemi yapacak istemci için örnek; Dim obj As IOrnInterface VB.NET ile interface’i karşılayacak metodun ismi ve etki alanı (scope) , interface’in karşılanacak olan metodundan bağımsız hale gelmiştir. Çoklu Interface kullanımı (multiple interface)Bir sınıf birden fazla implements deyimi kullanarak birden fazla interface dahil edebilir. Aşağıdaki gibi interface’lerimizin olduğunu düşünelim;
Bu iki interface’i de kendi içine dahil eden bir sınıf oluşturabiliriz;
Şu halde iki seçenek karşımıza çıkıyor. Birincisi Islem1 ve Islem2’i karşılayacak iki farklı yordam oluşurmak.
İkincisi eğer aynı Islem1 ve Islem2 aynı işi gerçekleştiriyorsa ikisini tek seferde karşılamak;
Gördüğünüz gibi virgül (,) ile karşılanacak metotları belirtmek yeterli. |
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |