💎Singleton
Bir sınıfın sadece bir örneği olmalıdır ve bu örneğe global bir erişim noktası sağlanmalıdır.

Desene ait yukarıdaki diyagrama bakacak olursak, örneğini istediğimiz sınıfın;
Constructor (oluşturucu metotu)
privateolmalıdır. Bunun amacı nesne oluşumunu tek yerden sağlamak. İstemcinin,newanahtar kelimesini kullanması engellemektir.Static bir değişkenolmalıdır, referansı tutmak için.Tutulan referansa erişmek için bir metot olmalıdır,
getInstance()
C# Kod Örneği:
Desenin yukarıdaki durumu geçerli gibi duruyor fakat multi-thread uygulamalarda nesnenin daha örneğinin oluşmadığı esnada if (database == null) durumuna aynı anda birden fazla thread girebilir, bu sayede de o sınıfa ait birden fazla nesne örneği bulunur. Bu kısmı iyileştirme yolunda dillerin bize sağladığı yapıları kullanabiliriz. C# dilinde lock ile JAVA dili için de synchronized sayesinde aynı anda sadece bir yapının erişmesini sağlarız.
C# dili için GetInstance() metotunu düzenleyecek olursak aşağıdaki hali alacaktır.
Bu tasarım deseninin JAVA ve diğer diller için olan uygulamasını bu tasarım deseni için oluşturulmuş klasörde bulabilirsiniz.
Last updated