Singleton
Contexte : Garantir qu’une classe n’a qu’une seule instance et fournir un point d’accès global à celle‑ci.
Implantation thread‑safe paresseuse
Section titled “Implantation thread‑safe paresseuse”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().