Sobes.tech
Junior

Qu'est-ce qu'un singleton?

sobes.tech IA

Réponse de l'IA

Singleton est un patron de conception créatif qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à celle-ci.

Avantages :

  • Contrôle sur la seule instance.
  • Point d'accès global.
  • Initialisation paresseuse (si implémentée).

Inconvénients :

  • Violates le principe de responsabilité unique.
  • Rendre les tests difficiles.
  • Peut causer des problèmes dans un environnement multithread sans synchronisation.

Implémentation typique en Swift :

class Singleton {  
    // Constante statique pour stocker la seule instance
    static let shared = Singleton()  

    // Constructeur privé pour empêcher la création d'autres instances
    private init() {  
        // Configuration supplémentaire si nécessaire  
        print("Instance Singleton créée")  
    }  

    // Exemple de méthode singleton  
    func doSomething() {  
        print("Singleton fait quelque chose")  
    }  
}  

Utilisation :

// Accès à l'unique instance via la propriété statique
let instance = Singleton.shared  
instance.doSomething()  
  
// Tenter de créer une autre instance provoquera une erreur de compilation
// let anotherInstance = Singleton() // Erreur!