Bilindiği üzere C# çoklu kalıtımı desteklemiyor. Bu nedenle bu eksikliği gidermek amacıyla Arayüz alt yapısı geliştirilmiştir.  Arayüzlerin en belirgin özelliği soyut klaslarda olduğu gibi metod bildirimleri içermesidir. Metod bildirimlerinin yanı sıra bir arayüz ;

1. Event
2. Property
3. Indexer

gibi yapıların bildirimlerini de içerebilir. Ancak soyut klaslarda olduğu gibi bu yapıların implemente edilmiş hallerini içeremezler. Sadece bu saydığımız 4 yapının bildirimlerini içerebilirler. Diğer bir deyişle bu yapıların implementasyonları  klaslar veya diğer yapılar içerisinde yapılmalıdır. Kısaca Arayüzler, kendisini uygulayan sınıflara rehberlik etmek üzere bir takım bildirimleri barındırırlar.

Peki neden Arayüzleri kullanmalıyız?
Bu soruyu bir örnekle açıklarsak sanırım daha iyi olur. Örneğin bir web sitemiz var ve verilerimizi XML dosyalarından okuyor ve XML dosyalarına yazıyoruz. Veri okumak için ise XmlReader kullanıyoruz. Oysa ki bir süre sonra XML ihtiyaçlarımızı artık karşılayamaz oldu ve bir veri tabanı kullanmaya karar verdik. Bu noktada kullandığımız XMLReader başımızı ağrıtabilir. Çünkü veri tabanından veri okurken işimize yaramayacaktır artık. Bunun yerine verileri okurken IDataReader arayüzünü kullanmış olsaydık daha az kod değiştirerek sonuca hızlıca ulaşabilirdik.

Gelelim arayüzlerin nasıl kullanıldıklarına. Örnek bir senaryo üzerinden gidersek; senaryomuz gereği iki tana arayüz tanımlayalım. Bunlarsan biri 4 işlem fonksiyonlarını yerine getirsin. Diğeri ise bu arayüzün ürettiği sonucu bize bildirsin. Arayüzlerimizi aşağıdaki şekilde tanımlıyoruz.

 

Arayüzlerimizi tanımladıktan sonra bu arayüzleri uygulayacak olan sınıfımızı tanımlıyoruz.


Eklediğimiz sınıfa oluşturmuş olduğumuz arayüzleri implemente ettiğimizde Visual Studio bize hemen yardımcı olarak söz konusu arayüzlerin içerisindeki bildirimleri oluşturuyor. Arayüzlerimizdeki bildirimleri oluşturduğumuz zaman aşağıdaki gibi bir kod bloğumuzun olması gerekiyor.

 

Görüldüğü üzere sınıfımızda implemente ettiğimiz arayüzlerin bildirimleri oluşturuldu. Sınıfımızı da oluşturduğumuza göre sıra geldi sonucu görmeye.

Ben bir ASP.NET uygulamasında sonucu yazdırmıştım, ihtiyaca göre istenilen yerde işlem yapılabilir.

 Yüzeysel olarak arayüzlerin ne olduğundan ve çok basit olarak nasıl kullanıldığından böylece bahsetmiş olduk. Daha detaylı bilgi edinmek isteyenler aşağıdaki linkleri takip edebilirler.

1. http://www.codersource.net/csharp_tutorial_interface.html
2. http://msdn.microsoft.com/en-us/library/87d83y5b.aspx
3. http://www.codeguru.com/csharp/csharp/cs_syntax/interfaces/article.php/c7563#more
4. http://www.codeproject.com/KB/cs/cs_interfaces.aspx
5. http://aspalliance.com/1516_Understanding_Interfaces_in_C.1
6. bir de tabiki http://www.google.com.tr :)

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5