Java Observer Tasarım Deseni

Batuhan Düzgün tarafından yayınlanmıştır 21. May 2012 21:15
  
Merhaba arkadaşlar bu yazıda sizlere Gözlemci (Observer) tasarım desenine ait bir uygulamadan bahsedeceğim. Uygulama aslında otomatik kontrol yapan ve sıra dışı durumları veya bizim belirlediğimiz durumları gözlemleme işine yarayacaktır.
 
Observer Tasarım Deseni ?
 
Observer Tasarım Deseni, bir durumu veya bir kaç durumu gözlemleyen ve ilgili durumlar meydana geldiğinde sistemde gerekli işlemlerin yürütülmesini sağlayan yazılım çözümüdür. Örneği: Bir borsa yazılımında Dolar kurunun 1.80 altına düşmesi durumunda, ilgili sorumlu kişiye SMS atarak uyarı verecek bir sistem düşünelim. Bu sorunda, bir durum mevcuttur ve bu durum meydana geldiğinde bir takım işlemlerin yapılması gerekmektedir. Aynı zamanda bu gerçekleşmesi olası olan durumun sürekli veya belli zaman aralıklarında kontrol edilmesi gerekmektedir. Bu sorunu birebir çözen yazılım çözümü Observer Tasarım Desenidir.
 
Uygulamaya Başlama Vakti ...
 
Eclipse IDE'yi veya herhangi bir Java derleyicisini açarak, yeni bir Java projesi oluşturulur. Yeni bir Java projesi nasıl oluşturulur linkte verdiğim makalede mevcuttur.
 
http://www.batuhanduzgun.net/post/2012/05/19/Java-Calling-Process.aspx
 
Uygulamanın İşlevi Nedir ?
 
Yazılacak olan uygulama her 1 dakikada sistem yöneticisine bir uyarı mail atacaktır. Böylece makaleyi okurken hem Observer hakkında bilgi verilmiş olacak, hemde Java Mail API ile mail nasıl gönderilir bu konuda bilgi sahibi olunacaktır. Projeyi açtıktan sonra, projeye eklenecek olan class dosyalarının isimleri aşağıdaki gibidir. 
 
- EmailSender
- MyObservable
- MyObserver
 
Uygulamayı yazmadan önce yapılması gerekenler ...
 
Uygulama içinde mail gönderim modülüde olduğu için Java Mail API indirilmesi gerekmektedir. Oracle firmasından bu API indirilebilir. Aşağıdaki linkten indirip, projeye JAR halinde kütüphane olarak ekleyebilirsiniz.
 
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html#javamail-1.4.5-oth-JPR
 
 
 
İndirme işleminde sonra Proje sağ tıklayıp, "Build Path >> Configure Build Path" yolunu takip edip, JAR dosyası eklenebilir. Aşağıdaki gibidir.
 
 
 
Ardından açılan pencerede "Libraries"  tabına tıklayıp, "Add External Jar" butonuna tıklanır ve "mail.jar" bulunduğu dizine gidilir ve ekleme işlemi yapılır.
 
 
 
Bütün işlemleri bitirdikten sonra sınıflar kodlanmaya başlanabilir. İlk olarak mail gönderme sınıfı aşağıdaki doldurulur. Mail gönderme işleminde önemli olan SMTP host cümlesi ve SMTP Host Port numarasıdır. Bilindiği üzere mail gönderme işlemi SMTP protokol üzerinden yapılabilir. SMTP üzerinden gönderilen mail karşı tarafta bir mail sunucuya iletilir. Bu mail sunucuları Gmail, Hotmail, Yahoo gibi çeşitlendirilir. Bu nedenle her mail sunucu için özel bir SMTP host ve port bilgisi vardır. Daha sonra MimeMessage sınıfı aracılığı ile mail alıcıları, gönderen bilgisi,  mail gövdesi ve konu başlığı gibi bilgiler eklenir. Şifre bilgisi gizlenmiştir. Kendi email hesabınıza ilişkin şifreyi girmelisiniz. Aşağıda sınıf yapısı verilmiştir.
 
 
Email gönderim modülü hazırlandıktan sonra, şimdide gözlemcinin işini kolaylaştıran ve durum kontrolü yapacak olan sınıf yapısı hazırlanır. Bu sınıfın temel işlevi her dakikada bir gözlemciyi mail göndermesi için uyarmaktır. Bu nedenle "Observable" interfaceden kalıtım aldırılmıştır. Ayrıca bu durum kontrolü belli bir zaman aralığında veya sürekli tekrarlanacağı için, bir Thread içinde çalışması sağlanmalıdır. Bu nedenle "Runnable" interfaceden kalıtım almıştır. Böylece yaratılacak olan Thread içine bir Runnable türünden bir nesne verilmiş olunabilecektir.
 
 
En son olarak ise "Observer" tipinden bir sınıf yapısı oluşturulur. Bu sınıf mail gönderme uyarısı geldiğinde Email gönderecektir.
  
 
Son olarak programın başlayacağı yer olan main metodunun bulunduğu sınıf içine aşağıdakiler yazılır.
 
 
Java uygulamasını çalıştırmak için bir tane Runner yaratmak gereklidir. Bunun için "Run as >> Run Configurations" yolu takip edilir.
 
 
"Java Application" sağ tıklanır, "New" ile yani bir tane yaratılır.
 
 
İsim bilgisi, main metodun bulunduğu sınıf ismi bilgileri girilir.

 

Program çalıştırıldığında aşağıdaki gibi sonuçlar alınacaktır.
 
 
Email hesabımı kontrol ettiğimde aşağıdaki gibi başarılı bir sonuç aldım.
  
 
Umarım yararlı bir makale olmuştur. Bir sonraki makalemde görüşmek dileğiyle ...
 
Batuhan Düzgün
Bilgisayar Mühendisi
Endüstri Mühendisi 

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Java

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  September 2018  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster