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!