Sobes.tech
Junior

Co je to singleton?

sobes.tech AI

Odpověď od AI

Singleton je návrhový vzor vytvárania, ktorý zaručuje, že daná trieda má iba jeden inštanciu a poskytuje globálny prístupový bod k nej.

Výhody:

  • Kontrola nad jedinou inštanciou.
  • Globálny prístupový bod.
  • Lenivá inicializácia (ak je implementovaná).

Nevýhody:

  • Porušuje princíp jednotnej zodpovednosti.
  • Sťažuje testovanie.
  • Môže spôsobovať problémy v prostredí s viacerými vláknami bez synchronizácie.

Typická implementácia v Swift:

class Singleton {  
    // Statická konštanta na uloženie jedinej inštancie
    static let shared = Singleton()  

    // Súkromný konštruktor na zabránenie vytvorenia iných inštancií
    private init() {  
        // Dodatočné nastavenie, ak je potrebné  
        print("Inštancia singleton bola vytvorená")  
    }  

    // Príklad metódy singletonu  
    func doSomething() {  
        print("Singleton niečo robí")  
    }  
}  

Použitie:

// Prístup k jedinej inštancii cez statickú vlastnosť
let instance = Singleton.shared  
instance.doSomething()  
  
// Pokus o vytvorenie inej inštancie spôsobí chybu kompilátora
// let anotherInstance = Singleton() // Chyba!