Singleton Tasarım Deseni (Design Pattern) Nedir ve Nasıl Kullanılır

Merhaba arkadaşlar,

Yeni bir yazımla yine karşınızdayım. Tasarım desenlerini iyi bir şekilde anlayabilmek ve sizlere de yardımcı olabilmek adına yazılarım sonuna kadar devam edecek. Şimdi gelelim Singleton Design Pattern ne işe yarar nerelerde kullanılır buna bir göz atalım isterseniz.

Creational Design Pattern’lardan olan Singleton adından da anlaşılacağı gibi tek bir nesne oluşturmaya izin veren bir yapıdır. Yani programın başlangıcından bitişine kadar RAM üzerinde oluşturduğumuz static bir nesne ile çalışıp bütünlüğü arttırmaya çalışıyoruz. Peki nerelerde kullanılır bu Singeleton Tasarım Deseni diye soracak olursanız, Loglama işlemleri, DB transactionları, file işlemleri gibi bir çok yerde kullanılabilmektedir. Singleton tasarım desenine bir de örnekler vererem pekiştirmenizi sağlamaya çalışmadan edemeyeceğim :). Yazılarımda C# veya Java programlama dili ile tasarım desenlerini anlatmaya çalışacağım. İsterseniz hemen başlayalım.

Programda iki adet sınıfımız olacak bu bu sınıflarımızda işlemlerimi gerçekleştireceğiz. Program.cs dosyamızda anlaşılacağı gibi program sınıfımız ve içerisinde main metodumuz yer alacak. Teksinif.cs dosyamızda ise singleton pattern’ini kullandığımız sınıfımız yer alacak. Burada aslında en önemli noktalardan birinden bahsetmek istiyorum. Buradaki asıl amaç manuel olarak instance oluşturulmasını engellemek. Bu amaçla yola çıkarak Teksinif class’ımızın default constructor’unu private yapıyoruz ve ikinci bir instance oluşturulmasını engelliyoruz. Oluşturacağımız nesne sadece sınıf içerisinden oluşturulacağı için tek bir instance oluşturulmasını garantilemiş olacağız.  Şimdi Teksinif class’ımızı görelim:

Göründüğü üzere yapıcı metodumuz private erişim belirleyicisi ile korunmakta. Burada altını çizmem gereken yapıcı metodumun içerisinde deger değişkenimi random bir sayı ile doldurmam yani Main metodumda iki adet getInstance yaptığımda tek bir nesne ile mi çalıştığımızı anlayabilmek için.

Main tarafında test etmek için getInstance metodunu kullandık ve degerlerini test ediyoruz. Çıktı aşağıdaki gibi olmalı yani sayılar eşit olmalı.

Ilk Instance: 1759608233

Ikinci Instance: 1759608233
Press any key to continue . . .

Bu yazımın da sonuna geldik. Umarım faydalı olabilmişimdir 🙂

Bu yazı Yazılarım kategorisine gönderilmiş ve , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Singleton Tasarım Deseni (Design Pattern) Nedir ve Nasıl Kullanılır için 2 cevap

  1. misafir der ki:

    “private static TekSinif _instance;
    private static TekSinif instance
    {”

    bu kısımda bir syntax hatası var sanıyorum.

  2. Cihan der ki:

    Teşekkürler eline sağlık

Bir cevap yazın

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