Java’da Interface Kavramı

Interface içinde sadece kendisinden türeyen sınıfların içini doldurmak zorunda olduğu içi boş metod tanımlarının yapıldığı bir yapıdır. Kısacası kendisini kullanacak sınıflar için bir yerine getirmeleri gereken metodları belirten bir kontrat gibidir.

Bir interface sınıfında sadece metotlar deklare edilir. Bu metotların gövdeleri boştur. Alt sınıflar bu metotların gövdeleri için gerekli kodu oluştururlar yani implemente ederler. Metot gövdesi olmayan bir interface sınıftan nesne oluşturulamaz, çünkü sadece metot deklarasyonlarına sahip bir nesnenin hiçbir işlevsel görevi olamaz.

Ford ve Audi isminde iki sınıf bulunuyor. Bu sınıflar Tasit interface sınıfını implemente ediyorlar. Bu iki implementasyon sınıfı bünyelerinde getMarka() isminde bir metod oluşturup, bu metodu implemente etmek (metot gövdesi için gerekli kodu oluşturmak) zorundalar.

Herhangi bir Java sınıfı implements direktifini kullanarak, bir interface sınıfının sahip olduğu metotları implemente edebilir. İmplementasyon ile, interface sınıfının tanımladığı (örneğin
getMarka()) metot gövdelerinin, alt sınıfta (yukardaki örnekte Audi sınıfı) kodlanmasını kastediyoruz. Buna göre interface sınıflarında sadece metodlar deklare edilebilir ve implemente edilemez. İmplementasyonu alt sınıflar üstlenir.

Java interface sınıflarının, kullanıcı sınıflar için bir nevi sözleşme metni oluşturduğunu gördük. Bir interface sadece dış dünyaya sunulacak hizmetleri tanımlar. Bu hizmetlerin nasıl yerine getirileceğine, interface sınıfını implemente eden altsınıflar karar verir. Interface kullanıcısı genelde hangi altsınıf üzerinden gereken hizmeti aldığını bilmez, bilmek zorunda değildir. Bu sayede loose coupling olarak tabir edilen, servis saglayıcı ve kullanıcı arasında gevşek bir bağımlılık oluşturulmuş olur. Bu yazılım mimarisi açısından büyük bir avantaj sağlamaktadır. Interface sınıflar kullanılarak, sisteme esnek ve ilerde servis kullanıcılarını
etkilemeden eklemeler yapilabilir.

Interface Neden Kullanılır?

Kısaca interface sınıflar, servis kullanıcılarından, kompleks yapıdaki alt sınıfları saklamak ve servis sunucusu ve saglayıcı arasındaki bağımlılığı azaltmak için kullanılır.

About This Author

Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği öğrencisiyim. Programlama, Web Teknolojileri ve Sosyal Medya ile ilgileniyorum. Bildiğim,öğrendiğim,gezip gördüğüm şeyleri buradan paylaşıyorum.

Post A Reply