Member-only story
Neden Interface kullanalım?
Bu yazımızda Java’da interface kavramını inceleyeceğiz. Nedir, ne değildir, neden kullanmalıyız sorularına cevap arayacağız.

Sınıflar gibi interface yapısının da metodları ve değişkenleri olabilir. Ama metodlar sadece bildirme amaçlıdır. Bir sınıf oluşturulurken neler olması gerektiği interface ile tanımlanabilir. Tanımlanabilir diyoruz bakın, nasıl yapılacağı uygulandığı sınıfta belirlenir.
Interface’de metodların amacı ne yapılacağını söylemektir, nasıl yapılacağı bildirilmez.
Eğer bir sınıf uyguladığı interface’deki tüm metodları sağlamazsa abstract olarak tanımlanmalıdır.
Yazının devamını göremeyenler “bu linkten” erişebilirler.
Bir özelliğe ulaşmak için belirlediğiniz bir yolunuz yoksa Singleton oluşturmak yerine prototype scope nesneler oluşturulabilir.
Kullanacağınız sınıf core business logic içeriyorsa ve bu iş için tek sınıfsa, bu durumda interface oluşturmaya gerek yoktur, sadece sınıfı oluşturmak yeterlidir.
Eğer bir sınıf detaylar hakkında bilgi veriyorsa, temel iş yapmıyorsa o zaman interface ile belirterek daha açıklayıcı hale getirebiliriz. Temel sınıf olmadığını detay anlatım olduğunu belirtmiş oluruz.
Dependency Rule and Dependency Inversion Principle (SOLID’deki D) kuralına uymak için yararlıdır. Yani üst seviye sınıfların alt seviye sınıflara bağımlılığını azaltır. Alt seviye sınıflarda davranış değiştiğinde üst seviye sınıf bundan etkilenmemelidir. Bunu interface yapısı ile sağlayabiliriz. Clean Architecture kitabında Robert C. Martin’de bu kullanımdan bahseder, dediklerine kulak ver.
Uygulama yapacağımız sınıf içinde interface kullanırken “implements” ile interface’i uygulayacağımızı bildiririz.