Program yazarken neden interface kullanıyoruz? Aslında tam olarak ne anlama geliyor açıklayabilir misiniz?
comments
1 references
// Comments are closed.
Program yazarken neden interface kullanıyoruz? Aslında tam olarak ne anlama geliyor açıklayabilir misiniz?
// Comments are closed.
Ben interface (arayüz) kavramını hep kariyer.net üzerindeki iş ilanlarına benzetirim. Bence duruma çok güzel uyum sağlıyor. Mesela bir iş üzerinden yola çıkalım.
Mesela bir arazi aldık ve bu araziye kendimize ait bir ev yapacağız. Kenarda maddi kaynaklarımız var diye düşünelim (ram/cpu/vs.). Fazla uzatmadan devam edelim. Bize temel kazmak için bir kepçe lazım. Temeli atmak için temel ustası lazım. Sonra duvar ustası, birkaç usta daha, en son da boya ustası diyelim. Şimdi basitçe programını yazalım.
Öncelikle bu ustaların işlerini belirleyelim.
Şimdi elimizde ustaların ne iş yapacağına dair bilgiler var. Artık evi yapabilir miyiz? Aşağıdaki kodları çağırırsak evi yapmış olmayı planlıyoruz.
Yazdık ve çağırdık ne olur? Direk yazma anında ya da derleme anında bu interface tanımlarını yapmışsın ama hiçbirisi gerçekleştirimi yok diye hata alırız. Yani işin tanımı belli ama nasıl yapılacağı belli değil. Bu normal bir iş verenin yani bizim çıkardığımız bir iş ihtiyaçları listesi. Keza elimizde böyle bir liste yaparak ev yapamayız. Peki ne olacak? Biz bu işlemlerini yaptığını idda eden insanları işe alacağız. Yani Kenan, Ahmet, Mehmet, …. Peki bunlarda aradığımız nokta ne olacak? Yukarıda interface olarak belirlediklerimizden en az bir ya da birkaçını gerçekleştirebildiklerini (implementation) bize söylemeleri gerekiyor. Nasıl yapıyoruz? Bakalım.
Sınıfların içinde ne yazdığını vermiyorum, keza eclipse, netbeans kullanıyorsanız size hemen şunları yazın diyecekler. Yani fonksiyonların nasıl çalıştığını yazacağız. Asıl kilit noktamız en sonra yatıyor. Kim neyi yapıyor nasıl belirliyoruz? EvYapıyoruz adındaki metodun olduğu yere de Islem diyelim.
Yavaş yavaş bitirelim. Şu anda en son atama/yaratma olduğu kısımda dikkati ne çekiyor?
Atamanın sağındaki ve solundaki tiplerin çekmesi lazım. Sol tarafta kullandığımız tipler; bizim en başta belirlediğimiz, kişilerden ne istediğimiz değil mi? Sağındakiler ise Aslında o işleri yapan kişiler.
Dikkat edilecek nokta ise TanidikBoyaci dediğimiz arkadaşın esas mesleği belki de boyacılık değil. Belki güzel saz çalıyor. Belki güzel araba kullanıyor. Bizi ilgilendiren kısmı boya yapması ve bu elemanı boya yapsın diye işe aldık. Bizim sözleşmemiz (BoyaUstasi) üzerinden bu elemana sazCal komutunu gönderemeyiz!! Ne bekliyorsak onu göndeririz. Direk ustayı tanıyorsanız ve size o elemanın kendi lazımsa o zaman eşitliğin sol tarafına bana BoyaUstasi lazım demeyin! direk TanidikBoyaci kenan = new TanidikBoyaci() deyin. Sapla samanı karıştırmanın lüzumu yok.
İyi çalışmalar.