Singleton Design Pattern Nedir?

Kürşat Öztürk
2 min readFeb 3, 2024

Singleton Design Pattern, nesne odaklı programlamada sık kullanılan bir tasarım desenidir. Bu desen, bir sınıftan yalnızca bir tane nesne oluşturulmasını garanti eder ve diğer sınıfların bu nesneye kolayca erişebilmesini sağlar.

Singleton Design Pattern Temel Özellikleri

  • Tek Nesne: Singleton sınıfının tek bir örneği bulunur.
  • Tek Erişim Noktası: Bu tek nesneye tüm uygulama boyunca aynı yerden erişilir.
  • Tembel Yaratma: Nesne, ihtiyaç duyulduğunda oluşturulur ve daha sonra tekrar oluşturulmaz.

Avantajları:

  • Global Değişken Alternatifi: Global değişkenlere kıyasla daha kontrollü ve esnek bir yaklaşım sunar.
  • Merkezi Erişim Noktası: Uygulama genelinde tk bir nesne ile çalışmayı kolaylaştırır.
  • Tembel Yaratma: Gerekli olmadıkça kaynak tüketmez.

Dezavantajları:

  • Test Zorluğu: Test edilmesi daha karmaşık olabilir.
  • Esneklik Kısıtları: Birden fazla nesne gerektiren durumlarda kullanılamayabilir.

Kullanım Örnekleri:

  • Ayar Dosyası Yönetimi: Tüm uygulama boyunca erişilebilen tek bir ayar dosyası nesnesi oluşturmak için kullanılabilir.
  • Logger: Tüm uygulama boyunca tek bir logger nesnesi oluşturmak için kullanılabilir.
  • Veritabanı Bağlantısı: Veritabanına tek bir bağlantı noktası sağlamak için kullanılabilir.

Örnek:

Bu örnekte, Logger sınıfı Singleton Pattern kullanılarak yazılmıştır. Sınıfın tek bir örneği _instance değişkeninde tutulur ve instance getter’ı üzerinden bu nesneye erişilir. main() fonksiyonunda Logger.instance.log() methodu çağırılır. Logger.instance getter’ı _instance değişkenindeki tek nesne örneğini döndürür. log() methodu, parametre olarak aldığı mesajı konsola yazdırır.

// Output:
Bu bir log mesajıdır!

Görüldüğü üzere, kod Logger sınıfının tek bir örneğini oluşturur ve bu nesnenin log() methodunu kullanarak bir mesajı konsola yazdırır.

--

--