Sobes.tech
Junior

Singleton nümunəsi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Singleton — bu yaradıcı dizayn nümunəsidir və sinifin yalnız bir nümunəyə sahib olmasını təmin edir və bu nümunəyə qlobal giriş nöqtəsi təqdim edir. Bu, ümumi resurs və ya vəziyyəti idarə etmək üçün tək obyektə ehtiyac olduqda tətbiq olunur.

İş prinsipi:

  1. new istifadə edərək yeni nümunələrin yaradılmasını qadağan edən xüsusi konstruktor.
  2. Yeganə nümunəni saxlamaq üçün xüsusi statik sahə.
  3. Nümunəyə giriş təmin edən ümumi statik metod:
    • Nümunənin yaradılıb-yaradılmadığını yoxlayır.
    • Əgər yoxdursa, onu yaradır və statik sahədə saxlayır.
    • Yaradılmış və ya mövcud nümunəni qaytarır.

Java nümunəsi:

public class Singleton {
    // Nümunəni saxlamaq üçün xüsusi statik sahə
    private static Singleton instance;

    // Xüsusi konstruktor
    private Singleton() {
        // Lazım gələrsə ilkinləşdirmə
    }

    // Nümunəyə giriş üçün ümumi statik metod
    public static Singleton getInstance() {
        // Lazy ilkinləşdirmə üçün null yoxlaması
        if (instance == null) {
            // Çox ipli mühit üçün sinxronizasiya
            synchronized (Singleton.class) {
                // İki dəfə yoxlama
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

    // Singleton biznes məntiqi
    public void doSomething() {
        System.out.println("Singleton nümunəsi bir şey edir.");
    }
}

QA Avtomatlaşdırmada tətbiqi:

  • Test konfiqurasiyalarının idarə olunması (özəllik faylları, mühit dəyişənləri).
  • Bütün testlər üçün eyni brauzer sürücüsünün (WebDriver) tək nümunəsi.
  • Log və ya hesabat meneceri.
  • Verilənlər bazası ilə əlaqələr hovuzu.

Üstünlüklər:

  • Yalnız bir nümunənin olmasını təmin edir.
  • Nümunəyə rahat giriş nöqtəsi təmin edir.
  • Lazy ilkinləşdirmə (yalnız ilk sorğuda yaradılır).

Çətinliklər:

  • Asılılıqları gizləyə bilər.
  • Singleton qlobal vəziyyət olduğu üçün vahid testləri çətinləşdirir.
  • Yeganə məsuliyyət prinsipini pozur (sinif öz məntiqi və həyat dövrü idarəçiliyi üçün məsul ola bilər).
  • Doğru tətbiq olunmazsa, çox ipli problemlər yarana bilər.