Sobes.tech
Junior

Cos'è un singleton?

sobes.tech AI

Risposta dell'AI

Il singleton è un pattern creazionale che garantisce che una classe abbia una sola istanza e fornisce un punto di accesso globale ad essa.

Vantaggi:

  • Controllo sull'unica istanza.
  • Punto di accesso globale.
  • Inizializzazione pigra (se implementata).

Svantaggi:

  • Violazione del principio di responsabilità singola.
  • Rende difficile il testing.
  • Può creare problemi in ambienti multithread senza sincronizzazione.

Implementazione tipica in Swift:

class Singleton {  
    // Costante statica per memorizzare l'unica istanza
    static let shared = Singleton()  

    // Costruttore privato per impedire la creazione di altre istanze
    private init() {  
        // Configurazione aggiuntiva, se necessaria  
        print("Istanza singleton creata")  
    }  

    // Esempio di metodo singleton  
    func doSomething() {  
        print("Il singleton sta facendo qualcosa")  
    }  
}  

Utilizzo:

// Accesso all'unica istanza tramite proprietà statica
let instance = Singleton.shared  
instance.doSomething()  
  
// Tentare di creare un'altra istanza causerà un errore di compilazione
// let anotherInstance = Singleton() // Errore!