Junior
Kas yra singleton?
sobes.tech AI
Atsakymas iš AI
Singleton yra kūrybinis dizaino šablonas, užtikrinantis, kad klasė turės tik vieną egzempliorių ir suteikiantis jam globalų prieigos tašką.
Privalumai:
- Kontrolė virš vienintelio egzemplioriaus.
- Globalus prieigos taškas.
- Vėlyvasis inicializavimas (jei įgyvendintas).
Trūkumai:
- Pažeidžia vienos atsakomybės principą.
- Sunkina testavimą.
- Gali sukelti problemų daugiasluoksnėse aplinkose be sinchronizacijos.
Tipinė įgyvendinimo Swift:
class Singleton {
// Statinė nuolatinė vertė, sauganti vienintelį egzempliorių
static let shared = Singleton()
// Privatūs konstruktorius, kad būtų išvengta kitų egzempliorių kūrimo
private init() {
// Papildoma konfigūracija, jei reikalinga
print("Singleton egzempliorius sukurtas")
}
// Pavyzdinis singleton metodo pavyzdys
func doSomething() {
print("Singleton daro kažką")
}
}
Naudojimas:
// Prieiga prie vienintelio egzemplioriaus per statinę savybę
let instance = Singleton.shared
instance.doSomething()
// Bandymas sukurti kitą egzempliorių sukels kompiliatoriaus klaidą
// let anotherInstance = Singleton() // Klaida!