Singleton Design Pattern

Selamlar bu makalede Singleton Design Pattern hakkında biraz konuşup sonrasında projelerimizde nasıl uygulayabiliriz onu konuşacağız.

Proje geliştirme süreçlerinde hiç kuşkusuz ki nesneler ile çalışıyoruz ve bu nesnelerden örnekler üretiyoruz. Nesnelerimiz arttıkça nesne üretimi de haliyle artıyor ve üretilen her nesne bellekte bir yer kaplıyor. Bu da bir maliyet ve performans kaybı olarak bize geri dönüyor.Böyle bir sorundan kurtulmak istiyorsak Singleton Design Pattern tamda bu noktada devreye giriyor.

Peki Singleton Design Pattern Nedir ?

Singleton Design Pattern uygulamanın yaşam süresince bir nesnenin bir kez oluşturulmasını sağlar. Böylelikle nesne bir kez üretilir ve gelen bütün taleplere üretilen nesne üzerinden cevap verilir. Ve tekrar bir nesne üretimi yapılmaz.

Bir adet Student sınıfı oluşuturuyoruz ve bize bir student bilgisini dönmesini sağlıyoruz.

  • Dışarıdan nesne üretimini engellemek için consructor’ı private belirledik ve bir adet manager field’ı oluşturduk.
  • Bir nesne için singleton uygulayacaksak oluşturulan ilk örneğin kilitlenmesi gerekmektedir.Eğer kilitleme yapılmazsa iki farklı thread in ard arda yapacağı istek sonucu birinin sonucuna ulaşılmadan yeni bir örneklendirme yapılır. Kilitleme yapılırsa nesne örneği kilitli olacağından, oluşturulan ilk örneğin işleminin bitmesini bekler ve ikinci bir istek yapıldığında oluşturulan ilk örneği kullanır.Bunun önüne geçmek için lock bloğunu kullandık.
  • StudentManager içersinde ki Instance() metodu ile nesnenin mevcut durumu kontrol edilir. Nesne üretilmiş ve bellekte var ise üretilmiş olan nesne örneği dönülür.Nesne daha önce üretilmemiş ise yeni bir nesne üretimi yapılır ve geriye o nesne dönülür.

Sıra geldi Program.cs içersinde manager sınıfımızı kullanmaya.

Projeyi çalıştırıp debug ettiğinizde nesne üretiminin bir kez yapıldıktan sonra diğer bütün taleplerin ilk üretilen nesne üzerinden karşılandığını göreceksiniz. Böylelikle Singleton Design Pattern ile nesne üretimini merkezi bir noktadan daha performanslı bir hale getirmiş olduk.

Hoşçakalın…

BUNLAR DA HOŞUNUZA GİDEBİLİR...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir