Sobes.tech
Junior

Singleton deseni nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Singleton, yalnızca bir örneği olan ve bu örneğe küresel erişim noktası sağlayan yaratıcı bir tasarım desenidir. Paylaşılan bir kaynak veya durumu yönetmek için tek bir nesneye ihtiyaç duyulduğunda kullanılır.

Çalışma prensibi:

  1. new kullanarak yeni örneklerin oluşturulmasını engellemek için özel yapıcı.
  2. Tek örneği saklamak için özel statik alan.
  3. Örneğe erişim sağlayan genel statik yöntem:
    • Örneğin oluşturulup oluşturulmadığını kontrol eder.
    • Oluşmadıysa, oluşturur ve statik alanda saklar.
    • Oluşturulan veya mevcut örneği döner.

Java örneği:

public class Singleton {
    // Örneği saklamak için özel statik alan
    private static Singleton instance;

    // Özel yapıcı
    private Singleton() {
        // Gerekirse başlatma
    }

    // Örneğe erişmek için genel statik yöntem
    public static Singleton getInstance() {
        // Tembel başlatma için null kontrolü
        if (instance == null) {
            // Çoklu iş parçacığı güvenliği için senkronizasyon
            synchronized (Singleton.class) {
                // Çift kontrol (Double-Checked Locking)
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

    // Singleton iş mantığı
    public void doSomething() {
        System.out.println("Singleton örneği bir şeyler yapıyor.");
    }
}

QA Otomasyonunda Uygulama:

  • Test yapılandırma ayarlarının yönetimi (özellik dosyaları, ortam değişkenleri).
  • Tüm testlerde aynı sürücü kullanıldığında tarayıcı sürücüsünün (WebDriver) tek örneği.
  • Günlük veya rapor yöneticisi.
  • Veritabanı bağlantı havuzu.

Avantajlar:

  • Sadece bir örneğin olmasını garanti eder.
  • Örneğe kolay erişim sağlar.
  • Tembel başlatma (sadece ilk talepte oluşturulur).

Dezavantajlar:

  • Bağımlılıkları gizleyebilir.
  • Singleton küresel bir durum olduğu için birim testlerini zorlaştırabilir.
  • Tek sorumluluk ilkesini ihlal eder (sınıf kendi mantığı ve yaşam döngüsü yönetimiyle sorumlu olabilir).
  • Doğru uygulanmazsa çoklu iş parçacığı sorunları ortaya çıkabilir.