5 Eylül 2014 Cuma

Interface Nedir?


      Interface temel Java da aktif olarak kullanılan bir yapıdır. Proje Analisti olarakta görebiliriz :) Özellikle kurumsal java uygulamalarında classlar arasındaki sıkı bağları kopartmamızı sağlar. İçerisinde sadece method tanımlarını bulunur. Methodlar body ( {...} ) içermez. Örn :
   
Interface tanımı


      Interface'i iş sürecini bilen bir analist gibi düşünebilirsiniz. Yazılımcıya sadece yapacağı işleri verebilir. Örneğin Kullanıcılar ile ilgili işlemleri listeleyecek olursak :

  1. Kullanıcı Bilgilerini getir.
  2. Kullanıcı Bilgilerini güncelle.
  3. Kullanıcıyı Aktif hale getir.
  4. Kullanıcıyı Pasif hale getir.
      Analist sadece bu işlemleri bize aktarabilir. Peki
  • Hangi veri tabanında çalışacağız ?
  • Orta Katmanda Spring mi var yoksa EJB'mi?
  • Bu günlük işlemleri DB' de yapıyoruz. Yarın bir Web Service üzerinden çalışırsak ?
Yukarıdaki soruların hiçbiri analisti ilgilendirmez. O sadece yapılacak işleri aktarır. Interface te aynı şekilde sadece yapılacak işleri tutar. Interface'i implement (Şart koştuğu methodları kullanmak) ederek
  1. Aynı methodları tekrar tekrar yazmak zorunda kalmayız.
  2. İş süreci Interface te tutarak kodun okunaklı olmasını sağlarız.
  3. Bir Interface birden fazla class tarafından implemente edilebildiği için projedeki sıkı bağları kırmış oluruz.
İş ve methodlar belli ile arka tarafta ORACLE DB veya MYSQL olması hatta bir Web Service olmasının önemi yok. Çünkü ben main methodumun içinde yada ekranımın controller'ında interface'i kullanacağım. Oda implemente ettiği class'ı kullanacak(Spring veya EJB kullanırken).  Interface 'e yeni bir method geldiğinde class bunu kullanmak zorunda kalacak ve süreç sürekli kontrol altında olacak.

Burada @Override anotasyonunu araştırmanızı tavsiye ederim :)

Özellikle resim ekliyorum.Yazarak tekrar etmeniz bu kısımda önemli.

MySql için Bağlantı class'ı

MySql kullanmak içi yapmamız gereken...
                          
Mysql sonucu
Oracle db için

Oracle db sonucu
 İş sürecini oracle üzerine almak için sadece TestDb tanımını değiştirmek yeterli. Bu örnekte en basit haliyle yapıyı tanıtmaya çalıştım. İleride Spring ve EJB konularını anlayabilmeniz için Interface oldukça önemli bir konu. Farklı ve daha basit kullanımlarda göreceğiz vakat JSE de durum bu şekilde.

İyi çalışmalar.

Hiç yorum yok:

Yorum Gönder