Tasarım Desenleri
Nesneye Dayalı Programlamada Sınıf İlişkileri Nasıl Olmalı?
Testçiler sizin düşmanınız değildir. Esas düşman yazılım hatalarıdır!
Yaratıcı Tasarım Desenleri

Tek Nesne ( Singleton ) Tasarım Deseni

Bu tasarım deseninde, bir sınıfın sistem içinde yalnızca bir tane nesnesi oluşturulabilir. Tek bir arayüz sunularak, bu nesneye yalnızca buradan erişim sağlanabilir. Bu desen kullanılarak, sistem içinde değeri değişmeyen, genel değişkenler bu oluşturulan tek nesneye konulabilir. Sistemde tek nesne yaratılabilme, statik değişken ve yordamlar sayesinde olur. Statik değişken ve yordamlar, nesneye dayalı programlanın esnekliğini, dinamik nesne yaratılma özelliklerini engellediği için bazı yazılım mühendisleri tarafından eleştirilebilir.

Örnek Uygulama

Örnekte, sisteme giriş yapılabilmesi için kullanılan "kullanıcı ismi" ve "şifre" bilgilerini tutan tek nesne örneklenmiştir. Sınıf içinde kendi tipinde nesneyi tutan static bir değişken bulunur. Bu nesneye yine static olan nesneAl yordamından ulaşılabilmektedir. Dikkat edilirse, sınıfın yapıcı (constructor) yordamı private şeklindedir. Yani "public" olmayarak dışarıdan erişim engellenmiş, nesne oluşumu sınıf içi ile sınırlandırılmıştır.

/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/



package com.ilkerkonar.uygulamalar.web.designPatterns.sample.singleton;

/**
*
@author İlker KONAR, Kıdemli Yazılım Uzmanı
*
* Tarih Bilgisi: 08 Oca 2013
*
*/
public class TekNesne {

  
// private static tek bir nesne oluşturulur.
  
private static TekNesne   tekNesne   = new TekNesne();

  
/**
    * Yapıcı yordam ( constructor ) private olduğu için dışarıdan ulaşılamaz ve sınıfın nesnesi oluşturulamaz.  
    */
  
private TekNesne() {
     
System.out.println( "'TekNesne' sınıfının nesnesi bellekte oluşturuluyor." );
  
}

  
/**
    *
@return Oluşturulan tek nesneye bu yordam üzerinden erişim sağlanır.
    */
  
public static TekNesne nesneAl() {
     
return tekNesne;
  
}

  
/**
    *
@return Tüm uygulama boyunca kullanılacak "kullanıcı ismi" bilgisini döner.
    */
  
public String getKullanıcıİsmi() {
     
return "ilker";
  
}

  
/**
    *
@return Tüm uygulama boyunca kullanılacak "şifre" bilgisini döner.
    */
  
public String getŞifre() {
     
return "12345";
  
}
}
/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/

package com.ilkerkonar.uygulamalar.web.designPatterns.sample.singleton;

/**
*
@author İlker KONAR, Kıdemli Yazılım Uzmanı
*
* Tarih Bilgisi: 08 Oca 2013
*
*/
public class DenemeSingleton {

  
/**
    *
@param args
    */
  
public static void main( final String[] args ) {

     
// TekNesne sınıfından bir tane bulunabilir ve nesne üzerindeki
      // "public" yordam ve değişkenlere, "TekNesne.nesneAl()" ile
      // ulaşılabilir. "nesneAl" yordamı, "TekNesne" sınıfının oluşturulan
      // tek nesnesine ulaşır.
     
final String kullanıcıİsmi = TekNesne.nesneAl().getKullanıcıİsmi();

      System.out.println
( "Kullanıcı ismi: " + kullanıcıİsmi );
      System.out.println
( "Şifre: " + TekNesne.nesneAl().getŞifre() );
  
}
}
'TekNesne' sınıfının nesnesi bellekte oluşturuluyor.
Kullanıcı ismi: ilker
Şifre: 12345

Yorumlar

Henüz bu sayfa için bir yorum yapılmamıştır.

Yorum Yaz, Düşüncelerini Paylaş

Not: Zorunlu alanlar yıldız (*) ile belirtilmiştir.

Kişisel Bilgiler

E-posta adresiniz kimse ile paylaşılmayacaktır. Gerekli olduğunda sizinle iletişim sağlamak için kullanılacaktır.

Yorum Alanı
Giriş Kontrol


Tüm java kodları "jdk1.7.0_09" ile derlenmiş ve çalıştırılmıştır.

Tüm hakları saklıdır. ©  "İlker KONAR" | İletişim: bilgi@tasarimdesenleri.com