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.
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.
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.
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.