TASARIM ÖRÜNTÜLERİ

Singleton

Creational Patterns bir örneği olan Singleton üretilen nesnenin sistemde tek bir tane olmasını garantileyen bir üretim örüntüsüdür.

Onur Dayıbaşı
Design Patterns

--

Bilgi Notu: Diğer tüm Tasarım Örüntüleri yazıma bu linkten ulaşabilirsiniz.

Hangi Durumda

Oluşturulan sınıfın proğram içerisinde tek instance olmasını istediğimiz durumlarda bu örüntüyü kullanırız. Yani sisteminizi cross cut eden tek bir çıkış noktası olan nesne türleri için;

  • Logging
  • Communication
  • Database
  • Access
  • OpenGL (Rendering Context)
  • OpenAL, FMod (Audio Context)
  • vb …

Burada amacımız N tane sınıf üretmek değildir. Çünkü bu sınıflar belli işlemleri yapan sınıflardır. Processor sınıflardır.

  • Loglama’da dosyaya/console log yazar.
  • Communication ağ üzerinden paket gönderir.
  • Database’de sorgu veya update yapar.
  • OpenGL grafik kartına çizim komutları gönderir.

Tüm bu işlemler sırasında tek bir Logger, tek bir DB, tek bir Grafik kartınız var ise N tane nesne üretmeniz anlamsızdır. Tek bir nesne üzerinden işlemleri yapmanız Context(Bağlamı) kaybetmemeniz gerekir.

Singleton Pattern Class Diagram

Aşağıdaki SingleObject oluşturulan instance bir tanesi olmasını garantiler. Bu işlemi lazy olacak şekilde de yapabilir yani getInstance çağrıldığında da bu işlemi yapabilir

getInstance()
if(!instance) intance=new SingleObject()
return intance;

Veya daha ilk aşamada new bu Objeyi oluşturup, tüm süreç boyunca bu objenin kullanılmasını sağlar. Burada SingletonObject oluşturabilmek için default constructor private hale getirmeyi unutmamak gerekiyor.

SingleObject (Singleton)
SingletonPattern Main

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--