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