Sobes.tech
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!