Ana içeriğe atla

Kayıtlar

Singleton etiketine sahip yayınlar gösteriliyor

C# Generic Singleton Pattern

Bu yazımda C# programlama dilinde Generic Singleton Pattern'nin uygulanmasını anlatacağım. Konuyu sadece kodları kopyalamak için bakıyorsanız biraz aşağı kaymanız yeterli olacaktır. Ama yazdığınız kodların ne anlama geldiğini bilmek bu kodlardan doğabilecek problemlerin veya bu kodların sizi kazandırdığını da doğru yorumlama açısından önemli olduğu için makaleyi de okumanız önemlidir. Öncelikle kısaca bahsetmem gerekirse generic singleton tasarım deseni nesne üretiminde singleton patternini uygularken sizi kopyala yapıştır mantığından kurtaran ve bir anlamda kod kalitenizi artırarak okunabilirliğini de artıran bir tasarım kalıbıdır. Generic Singleton Pattern sizi sürekli singleton patterninin private constructor ve instance objelerini yazmanızdan kurtarır. Önemli bir nokta singleton tasarım kalıbını çok iyi anlamanızın gerektiğidir. Daha önce yazdığım " Singleton Tasarım Deseni " makalesine buradan erişebilirsiniz. Singleton konusunu tam olarak anladıysa

Singleton Tasarım Deseni

Tasarım desenleri konusuna giriş yapanların belki de ilk öğrenmeye çalıştıkları konu singleton tasarım desenidir. Konuyla ilgili yazılım bloglarında, kitaplarda ve programlama derslerinde konu anlatılsa da eksik kalan bir kaç noktanın detaylı anlatılmaması konunun tam olarak kavranamamasına neden oluyor. Bu anlamda Singleton tasarım desenine giriş yapmadan önce nesne yönelimli programlama konusuna hakim olmak, nesne ve örneğinin oluşturulması, multi-thread çalışma mantığını anlama ve lock, static anahtar kelimelerinin kullanımına hakim olmanız gerekiyor. Hangi programlama dili kullandığınızdan bağımsız olarak bu tanımlamalar hemen hemen tüm nesne yönelimli programlama dillerinde aynıdır. Nesne yönelimli programlamada en maliyetli süreçlerden bir tanesi yeni nesne üretimidir. Aynı zamanda özellikle multi-thread uygulamalarda static kelimesinin yanlış kullanılması büyük problemlerin ortaya çıkmasına neden olabilir. Günümüz uygulamalarının çoğunun multi-thread çalıştığını da gö