Sobes.tech
Junior

Singleton nima?

sobes.tech AI

AIdan javob

Singleton — bu yaratuvchi dizayn naqshidir, bu sinfning faqat bitta nusxasi bo‘lishini kafolatlaydi va unga global kirish nuqtasini taqdim etadi.

Afzalliklar:

  • Yagona nusxa ustidan nazorat.
  • Global kirish nuqtasi.
  • Erta boshlash (agar amalga oshirilgan bo‘lsa).

Kamchiliklar:

  • Yagona mas'uliyat tamoyilini buzadi.
  • Sinovlarni qiyinlashtiradi.
  • Sinxronizatsiya qilinmagan holda ko‘p ipli muhitda muammolar tug‘dirishi mumkin.

Swiftda odatiy amalga oshirish:

class Singleton {  
    // Yagona nusxani saqlash uchun statik konstant
    static let shared = Singleton()  

    // Boshqa nusxalarni yaratishni oldini olish uchun maxfiy konstruktor
    private init() {  
        // Qo‘shimcha sozlashlar, agar kerak bo‘lsa  
        print("Singleton nusxasi yaratildi")  
    }  

    // Singleton metodining misoli  
    func doSomething() {  
        print("Singleton biror narsa qilmoqda")  
    }  
}  

Foydalanish:

// Statik xususiyat orqali yagona nusgaga kirish
let instance = Singleton.shared  
instance.doSomething()  
  
// Boshqa nusxani yaratishga urinish kompilatsiya xatosiga olib keladi
// let anotherInstance = Singleton() // Xato!