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!