Bu yazımın öncekilere göre biraz farklı olduğunu biliyorum. Önceden proje geliştirirken işime yarayan ya da yeni teknolojileri tanıtan teknik yazılar yazıyordum. Bu yazımda ise Yazılım Mühendisliği’nin vazgeçilmezlerinden biri olan Design Pattern(Tasarım Kalıbı) ‘dan bahsedicem. Bugüne kadar hep teknik konulara değindim fakat bir yazılımcı için daha önemli şeyler vardır:) Özellikle yazılım mühendisleri için bir dilmekten ziyade bir algoritma, tasarım kalıbı ya da UML’i bilmek daha önemlidir. Bunları bildikten sonra geriye yeter ki dil öğrenmek kalsın:) Zaten algoritması yazılmış bir uygulamanın %50’si bitmiş demektir. Artık her dilde yazabilirsiniz. Daha fazla uzatmadan konuya gireyim artık. Bugün tasarım kalıplarından creational pattern olan Singleton Pattern konusuna değineceğim. Singleton tasarım kalıbı belki de tüm kalıplar içerisinde en basiti ve çok kullanılıdır. Bildiğiniz gibi tasarım kalıplarının hepsi yazılım yaparken karşılaştığımız birer sorundur. Uygulamamızda eğer bir sınıftan sadece tek bir nesne üretilmesini istiyorsanız çözüm Singleton kalıbıdır. Aşağıda sınıf diyagramını ve örnek uygulamayı bulabilirsiniz. 

UML Class Diyagramı:

  

 

Örnek Kod: 

class Singleton {

    private static Singleton _instance = null;

    private Singleton() { }

    public static Singleton CreateInstance()      

       {

       if (_instance==null) {

          _instance = new Singleton();

            }

       return _instance; 

        }   

 }

Koddan da anlaşılacağı gibi ilk olarak static Singleton tipinde bir değişken tanımlıyoruz. Daha sonra yapıcı metodunu private olarak değiştiriyoruz ki  anahtar kelimesiyle nesne üretilmesin yani dışardan kimse yapıcıyı çağıramasın. Bunu da hallettikten sonra geriye Singleton tipinde bir değer döndüren static bir metod tanımlamak kalıyor. Bu metod ile de _instance değişkenimiz null’sa bir tane nesne üretiyoruz eğer null değilse yeni bir nesne üretmek yerine var olan nesneyi geri döndürüyor bize. Böylece bu sınıftan sadece tek bir nesne üretebiliriz. Aşağıdan örnek console uygulamasını indirebilirsiniz.

SingletonPattern.zip (7,19 kb)

About the Author