Junior
Singleton naqshasi nima?
sobes.tech AI
AIdan javob
Singleton — bu yaratuvchi dizayn namuna bo‘lib, u sinfda faqat bitta nusxa bo‘lishini kafolatlaydi va bu nusxaga global kirish nuqtasini taqdim etadi. Bu, umumiy resurs yoki holatni boshqarish uchun yagona ob'ekt kerak bo‘lganda qo‘llaniladi.
Ishlash prinsipi:
newyordamida yangi nusxalarni yaratishni taqiqlash uchun shaxsiy konstruktor.- Yagona nusxani saqlash uchun shaxsiy statik maydon.
- Nusxaga kirishni ta'minlaydigan umumiy statik metod:
- Nusxa yaratilgan yoki yo‘qligini tekshiradi.
- Agar yo‘q bo‘lsa, uni yaratadi va statik maydonda saqlaydi.
- Yaratilgan yoki mavjud nusxani qaytaradi.
Java misoli:
public class Singleton {
// Nusxani saqlash uchun shaxsiy statik maydon
private static Singleton instance;
// Shaxsiy konstruktor
private Singleton() {
// Boshlang‘ich sozlash, agar kerak bo‘lsa
}
// Nusxaga kirish uchun umumiy statik metod
public static Singleton getInstance() {
// Lazy boshlang‘ich uchun null tekshiruvi
if (instance == null) {
// Ko‘p ipli muhitda xavfsizlik uchun sinxronlash
synchronized (Singleton.class) {
// Ichki ikkilamchi tekshirish
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
// Singleton biznes mantiqi
public void doSomething() {
System.out.println("Singleton nusxasi biror narsa qilmoqda.");
}
}
QA Automationda qo‘llanilishi:
- Test konfiguratsiyalarini boshqarish (xususiyat fayllari, muhit o‘zgaruvchilari).
- Barcha testlar uchun bir xil brauzer drayveri (WebDriver) ning yagona nusxasi.
- Log yoki hisobot menejeri.
- Ma'lumotlar bazasiga ulanishlar havzasi.
Afzalliklari:
- Faqat bitta nusxa bo‘lishini kafolatlaydi.
- Quvvatli kirish nuqtasini taqdim etadi.
- Lazy boshlang‘ich (faqat birinchi so‘rovda yaratiladi).
Kamchiliklari:
- Bog‘liqliklarni yashirishi mumkin.
- Singleton global holat bo‘lgani uchun birlik testlarini qiyinlashtiradi.
- Yagona mas'uliyat prinsipi buziladi (sinf o‘z mantiqiga va hayot aylanishini boshqarishga mas'ul bo‘lishi mumkin).
- To‘g‘ri amalga oshirilmasa, ko‘p ipli muammolar yuzaga kelishi mumkin.