Merhaba bu yazı serisi ile C# programlama dilindeki interface'leri ayrıntılı bir şekilde anlatmayı planlıyorum, genel olarak önceki yazılarımda hep anlattığım konularla alakalı küçük bir projede örnekler göstermiştim, bu seride daha çok açıklama olacaktır. İyi okumalar...
C# uygulaması geliştirmek isteyenler işe ilk olarak interface'leri hazırlamakla başlamalıdır. Uygulama için interface'ler oluşturulduktan sonra abstract class'lar ile devam edilebilir...
İnterface'ler içerisinde:
- Method,
- Event,
- Indexer ve
- Properties bulunabilirken,
-
- Fields,
-
- Constructor ve
-
- Destructor bulunamaz.
C#'ta çoklu kalıtım desteği olmamasından kaynaklanan eksikliklerden dolayı interface'ler ile bu durum giderilmeye çalışılmıştır ancak interface'ler ile ilk zamanlar junior programcıların çok karıştırdığı abstract class'lardan farklı özellikleri vardır. Bu özelliklerin net bir şekilde anlaşılması gerekmektedir. Programcılıkta yolun başında olanlar ne zaman interface, ne zaman abstract class hazırlayacakları konusunda tereddüte düşebilirler, bunlara üstad Memik Yanık şu şekilde cevap vermiştir.
- Hazırlamak istediğiniz abstract class'ın veya interface'in gövdesi olacak metotlar var mı? Sorunun cevabı evet ise abstract class hazırlanmalıdır.
- Hazırlayacağınız class'a rehber olacak yapıda çok sayıda metot olacak mı? Metotların sayısı fazla ise bunları gruplamak anlamlı mıdır? O zaman interface hazırlamalısınız.
Yukarıdaki sorulara verilen cevaplardan da anlıyoruz ki aslında interface'ler hazırlanacak olan class'a rehberlik etmektedir. Interface üzerinde hazırlamış olduğumuz metotların hepsi hazırlayacağımız class'ta kullanılmak zorundadır.
- Interface'ler
interface
anahtar kelimesi ile başlamalıdır. Genel alışkanlık Interface'lerin adlarının başına I harfi konulmasıdır. - Interface'ler de hazırlamış olduğunuz metotların ve özelliklerin herhangi bir erişim belirleyicisi olmamalıdır. Bunun sebebi rehberlik etmiş olduğu sınıfta bu işlemin gerçekleştirilmesinin gerektiğindendir.
- Interface'ler abstract class'lara yapıca çok benzemektedir. Ancak abstract classlar içerisinde abstract metotlar ve normal metotlar tanımlanabilirken, interfaceler içerisinde böyle bir durum yoktur.
- Interface'lerin üye sayısının 10-15 olması idealdir.
Interface konusuna sonraki yazımda devam edeceğim ve bir class'a birden fazla interface dahil ederken karşılaşabileceğimiz istisnai durumları ele alacağız. Sonraki yazımızda görüşmek üzere...
İlk Yorumu Siz Yapın