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:
newistifadə edərək yeni nümunələrin yaradılmasını qadağan edən xüsusi konstruktor.- Yeganə nümunəni saxlamaq üçün xüsusi statik sahə.
- 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.