Sobes.tech
Junior

Šta je singleton?

sobes.tech АИ

Одговор од АИ

Singleton je obrazac za kreiranje koji garantuje da klasa ima samo jedan primerak i pruža globalnu tačku pristupa tom primerku.

Prednosti:

  • Kontrola nad jedinstvenim primerkom.
  • Globalna tačka pristupa.
  • Lenja inicijalizacija (ako je implementirana).

Nedostaci:

  • Krši princip jedinstvene odgovornosti.
  • Komplikovanije testiranje.
  • Može izazvati probleme u višestrukim nitima bez sinhronizacije.

Tipična implementacija u Swift-u:

class Singleton {  
    // Statička konstanta za skladištenje jedinstvenog primerka
    static let shared = Singleton()  

    // Privatni konstruktor za sprečavanje kreiranja drugih primeraka
    private init() {  
        // Dodatna konfiguracija, ako je potrebna  
        print("Singleton instanca kreirana")  
    }  

    // Primer metode singletona  
    func doSomething() {  
        print("Singleton radi nešto")  
    }  
}  

Upotreba:

// Pristup jedinstvenom primerku putem statičke osobine
let instance = Singleton.shared  
instance.doSomething()  
  
// Pokušaj kreiranja drugog primerka izazvaće grešku pri kompilaciji
// let anotherInstance = Singleton() // Greška!