|  | 
        
            | 
                    
                        | Singleton Tasarım Deseni |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | Singleton, 
oldukça sık kullanılan bir tasarım kalıbıdır. Bu kalıp, tüm tasarım kalıpları 
ile karşılaştırıldığında, kullanımı en basit olan ve çok fazla kullanılan bir 
tasarım kalıbıdır. Çok basit olması, önemi az olarak yorumlanmamalıdır çünkü genelde, 
hayati yerlerde kullanılmaktadırlar. Singleton’ın yanlış kullanımı, sistemin göçmesine 
neden olacaktır. 
Tasarım 
  kalıpları yazısının üçüncü bölümünde SINGLETON kalıbının anlatılmasının yerinde 
  olacağını düşündüm. Yazılara gelen yorumlarınız ve mailleriniz makalelerin teknik 
  açıdan dengeli gittiğini gösteriyor. Bu yüzden yazılara aynı seviyede devam 
  edeceğiz. 
 SINGLETON, 
  isminden de anlaşılacağı üzere, bir sınıfa ait tek bir instance yaratma ve bu 
  instance’ı global yapmaktır. Peki bu ne anlama geliyor? Mesela yaratmış olduğunuz 
  bir sınıf olsun, bu sınıfın sadece ve sadece bir tane olması gerektiği bir sisteminiz 
  var. Bu durumda SINGLETON kalıbı ile bu koşulu garanti altına almış olursunuz.
 
 SINGLETON ayrıca, bu tek olan sınıfa heryerden erişimin sağlandığını 
  da garanti eder.
 
 Gercek 
  hayattan örneklememiz gerekirse, bir muhasebe sisteminde, ay sonu hesap kesimini 
  yapan bir sınıf, kredi kartı ile ödeme yapılan bir sistemdeki kredi kartı para 
  çekme işlemini yapan bir sınıf, uçak iniş kalkışlarının ayarlandığı uçuş yönetimini 
  sağlayan sınıf...
 
 Gördüğünüz gibi pek çok durumda, anlatılan durumda bir koşul vardır. Bu durumların 
  hepsinde Singleton kalıbını kullanmak yazılımcının işini kolaylaştıracaktır.
 
 !! 
  Singleton sınıfı, bir sınıftan sadece ve sadece bir tane olması gereken ve bu 
  sınıfa sistemdeki diğer tüm bileşenlerin ulaşması gereken durumlarda kullanılmalıdır.
 
 Singleton 
  yapısına baktığımızda, tek olması gereken sınıfı kullanmak, yaratmak için özel 
  metodların oldugunu görürürüz. Bunun sebebi, sınıfın sistemin herhangi bir yerinde 
  izinsiz olarak yaratılmamasıdır.
 
 
  
 KÜNYE 
Isim: 
  SINGLETON
 Amaç: Bir sınıftan sadece ve sadece bir tane yaratıp kontrolü 
  sağlamak.
 Problem: Sistemde aynı işi yapan birden fazla yapı olması durumunda 
  ortaya çıkacak yanlışlıklar
 Çözüm: Gerekli sınıfı yaratmayı kontrol altında tut ve sadece 
  bir tane yarat.
 Birimler: Singleton sınıfı
 Gerçekleştirim: Singleton sınıfını yarat, sınıfın instance’ını 
  yaratmayı kontrol altında tut.
 
 Aşağıdaki 
  örnek kod, SINGLETON için kullanabileceğiniz, oldukça basit ama Singleton’ın 
  ne oldugunu çok iyi anlatan bir koddur:
 
 
 
  Eğer siz de yukarıdaki koddaki gibi bir teknik kullanırsanız, istenilmeyen bir 
  ikinci "instance" yaratmak imkansız olacaktır. Koda daha yakında bakarsak, sınıfın 
  yaratılmasının sadece ve sadece bir yolu vardır, o da _TekInstance ’ın daha 
  önceden yaratılmamış olması, yani "0" olmasıdır. Bu durumda, "0" olduğu için 
  daha önceden bu sınıftan yaratılmamış oldugu ya da yaratıldıysa da yok edildiği 
  anlaşılacak yani sistemde sınıfın instance’ının olmadığı anlaşılacaktır. Böylelikle 
  istenilen durum sağlandığından yeni bir instance yaratılabilmektedir. 
    | class Singleton 
        { 
 public:
 static Singleton *TekInstance();
 
 protected:
 Singleton();
 
 private:
 static Singleton *_TekInstance;
 }
      Singleton *Singleton::_TekInstance; 
      static Singleton 
        *TekInstance()
 {
 If (_TekInstance == 0) {
 _TekInstance = new Singleton;
 return 
        _TekInstance
 }
 }
 
 
 |  
 If sorgusuna girilmeden işlemler devam ederse, o anda bir instance oldugu anlaşılır 
  ve o varolan instance, geri döndürülür.
 İşin güzel tarafı, sınıfınızı kullanmakta olan kişiler, sizin o sınıfı yarattığınızı 
  ya da var olan sınıfı geri döndürdüğünüzü bilmeyeceklerdir. İstenilen sınıfı 
  geri döndürme işlemini siz yaptığınız için "return" ile hangi pointer’ı döndürürseniz, 
  o sınıf kullanılmaya devam edecektir.
 
 Singleton 
  ile ilgili diğer bir makale için tıklayınız.
 
 
 
                Makale:Singleton Tasarım Deseni Yazılım Mühendisliği Tanıl Ergin
 | 
        
            |  | 
        
            |  | 
        
            | 
                    
                        
                            
                        
                            Eklenen Son 10 
                            Bu Konuda Geçmiş 10 
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                            Son Eklenen 10 Makale Yükleniyor
                         
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         | 
        
            |  |