Singleton

Définition - Que signifie Singleton?

Un singleton est une classe qui permet de créer une seule instance d'elle-même et donne accès à cette instance créée. Il contient des variables statiques qui peuvent accueillir des instances uniques et privées de lui-même. Il est utilisé dans les scénarios lorsqu'un utilisateur souhaite limiter l'instanciation d'une classe à un seul objet. Cela est généralement utile lorsqu'un seul objet est requis pour coordonner les actions dans un système.

Le modèle singleton est utilisé dans les langages de programmation tels que Java et .NET pour définir une variable globale. Un seul objet utilisé dans les systèmes reste constant et ne doit être défini qu'une seule fois plutôt que plusieurs fois.

Definir Tech explique Singleton

Un singleton est destiné à ne fournir qu'une seule instance de lui-même tout en facilitant un point d'accès global. L'implémentation d'un modèle singleton implique la création d'une classe avec une méthode qui crée une nouvelle instance de la classe. Pour implémenter un modèle singleton, les principes d'instance unique et d'accès global doivent être satisfaits. La classe singleton est comme un référentiel global pour une instance d'elle-même, rendant le constructeur privé. Par conséquent, une instance en dehors de la classe ne peut pas du tout être créée et un singleton ne peut contenir qu'une seule instance. Une classe singleton s'instancie et gère cette instance sur tous les systèmes.

Les modèles d'usine abstraite, de constructeur et de prototype peuvent utiliser des singletons. Les objets de façade et les objets statiques sont souvent des singletons. L'implémentation de Singleton nécessite un mécanisme par lequel un membre de classe peut être accédé sans avoir à créer un objet de classe et conserver la valeur des membres de classe parmi les objets de classe. Les étapes impliquées dans la création d'un singleton sont les suivantes:

  1. Le constructeur est rendu privé. Cela permet uniquement à la classe d'avoir accès au singleton.
  2. Exemple:
    données de test de classe
    {
    Données de test privées ()
    {
    //… no-op pour un singleton

  3. Une seule instance interne de la classe est créée à l'aide d'une méthode. La méthode est appelée une instance dans cet exemple. La méthode «instance» est utilisée pour initialiser la classe pour accéder à une seule instance. La méthode d'instance est marquée comme statique dans cet exemple pour donner à tous les threads un accès cohérent. En dehors de la création de l'instance, l'instruction «lock» est utilisée pour contrôler l'accès multithread. Cela verrouille la création de l'instance sur un seul thread.

    Exemple:

    // Création paresseuse d'une instance interne de singleton
    Instance de données de test statique publique
    {
    Commencez
    {
    Verrouiller (type de (testdata))
    {
    Si (_instance == null)
    _instance = testdata ();
    }
    Return _instance;
    }
    }