Belirli bir sınıfın yalnızca bir örneğinin oluşturulmasını ve ardından tüm uygulama için bu örneğe basit küresel erişim sağlamamız gerektiğinde C # 'daki Singleton Tasarım Deseni'ni kullanmamız gerekir.
Singleton Tasarım Deseni: Hizmet Proxy'lerini kullanabileceğiniz gerçek zamanlı senaryolar: Bildiğimiz gibi bir Hizmet API'sini çağırmak bir uygulamada kapsamlı bir işlemdir. Çoğu zaman alan işlem, hizmet API'sını çağırmak için Hizmet istemcisini oluşturmaktır. Service proxy'yi Singleton olarak oluşturursanız, uygulamanızın performansını artıracaktır.
Cepheler: Uygulamanın performansını artırabilecek olan Veritabanı bağlantılarını Singleton olarak da oluşturabilirsiniz.
Günlükler: Bir uygulamada, bir dosyada G / Ç işlemi gerçekleştirmek pahalı bir işlemdir. Logger'ı Singleton olarak oluşturursanız, G / Ç işleminin performansını artıracaktır.
Veri paylaşımı: Sabit değerleriniz veya yapılandırma değerleriniz varsa, bu değerleri uygulamanın diğer bileşenleri tarafından okunabilmesi için Singleton'da tutabilirsiniz.
Önbellekleme: Bildiğimiz gibi bir veritabanından veri almak zaman alan bir işlemdir. Uygulamanızda, DB çağrılarını önleyecek ana ve yapılandırmayı bellekte önbelleğe alabilirsiniz. Bu gibi durumlarda, Singleton sınıfı, ipliğin senkronizasyonu ile önbelleğe almayı, uygulamanın performansını önemli ölçüde artıran verimli bir şekilde işlemek için kullanılabilir.
C # 'da Singleton Tasarım Deseninin Dezavantajları C #' da Singleton Tasarım Desenini kullanmanın dezavantajları aşağıdaki gibidir:
Birim testi çok zordur çünkü bir uygulamaya küresel bir durum kazandırır. Çok iş parçacıklı bir ortamda singleton örneğine erişmek için kilitleme kullanarak nesneyi serileştirmeniz gerektiğinden, bir programdaki paralellik potansiyelini azaltır.
Bunu bir sonraki makaleden aldım.
https://dotnettutorials.net/lesson/singleton-design-pattern/