Junior
Czym jest singleton?
sobes.tech AI
Odpowiedź od AI
Singleton to wzorzec kreacyjny, który gwarantuje, że klasa ma tylko jedną instancję i zapewnia do niej globalny punkt dostępu.
Zalety:
- Kontrola nad jedyną instancją.
- Globalny punkt dostępu.
- Leniwa inicjalizacja (jeśli jest zaimplementowana).
Wady:
- Narusza zasadę pojedynczej odpowiedzialności.
- Utrudnia testowanie.
- Może powodować problemy w środowiskach wielowątkowych bez synchronizacji.
Typowa implementacja w Swift:
class Singleton {
// Stała statyczna do przechowywania jedynej instancji
static let shared = Singleton()
// Prywatny konstruktor, aby zapobiec tworzeniu innych instancji
private init() {
// Dodatkowa konfiguracja, jeśli jest potrzebna
print("Utworzono instancję singleton")
}
// Przykład metody singletona
func doSomething() {
print("Singleton robi coś")
}
}
Użycie:
// Dostęp do jedynej instancji przez statyczną właściwość
let instance = Singleton.shared
instance.doSomething()
// Próba utworzenia innej instancji spowoduje błąd kompilacji
// let anotherInstance = Singleton() // Błąd!