Skip to content

Singleton

Contexte : Garantir qu’une classe n’a qu’une seule instance et fournir un point d’accès global à celle‑ci.

public sealed class Singleton
{
private static readonly Lazy<Singleton> _lazy = new(() => new Singleton());
public static Singleton Instance => _lazy.Value;
private Singleton() { }
public void DoSomething() => Console.WriteLine("Singleton work");
}

Exemple d’utilisation dans le monde réel

Section titled “Exemple d’utilisation dans le monde réel”

Gestionnaire de configuration d’application : Charge les paramètres une fois et les partage dans toute l’application. Les pools de connexions de base de données, les services de journalisation et les caches utilisent souvent Singleton.

Exemple : Dans .NET, HttpClient est destiné à être utilisé comme singleton pour éviter l’épuisement des sockets. La classe Lazy<T> implémente elle‑même un singleton paresseux. De plus, le conteneur Dependency Injection enregistre souvent des services avec AddSingleton().