Comment créer une classe qui ne peut avoir qu'une seule instance en C#
Je me demande si il y a un mécanisme ou un motif de n'autoriser qu'une seule instance d'une classe en C#. J'ai entendu parler de la Singleton
classe, mais je ne sais pas comment bien l'utiliser.
Si j'aurais n les instances de la classe au lieu d'une seule? (curiosité)
OriginalL'auteur Tom Sarduy | 2011-06-12
Vous devez vous connecter pour publier un commentaire.
À l'aide d'un singleton, c'est une classe qui permet une seule instance de lui-même à être créé.
Le fonctionnement de ce modèle est simple et pourrait être réduit à ce qui suit:
Cacher le constructeur de la classe Singleton, de sorte que les clients peuvent ne pas être instanciée.
De déclarer la classe Singleton variable membre privée contenant la référence à l'instance unique que nous traitons.
Fournir dans la classe Singleton une fonction ou une propriété qui offre l'accès à une maintenue par l'instance du Singleton.
OriginalL'auteur Ruben Capote
Vous avez besoin pour lire notre propre Jon Skeet est blog (mise en place d'un Singleton en C#).
Intention de Singletom Modèle est "d'assurer une classe n'a qu'un seul exemple, et de fournir un point d'accès".
Voici comment vous pouvez le faire.
Cette réponse peut précéder les plus récents de la syntaxe... mais
public static Singleton Instance { get; } = new Singleton();
faire l'affaire, en évitant lesprivate readonly
champ?OriginalL'auteur sgokhales
cela peut être de l'échantillon Singletone mise en œuvre
peut être utilisé de cette façon
OriginalL'auteur DeveloperX
Singleton n'est pas une classe, mais plutôt un modèle.
Voici un exemple:
Pas vraiment.
theOne
est privé donc n'a pas d'importance.OriginalL'auteur Petar Ivanov
Une option est de simplement déclarer un
static
classe avec seulementstatic
membres. Ou vous pouvez implémenter le pattern Singleton en donnant à la classe unprivate
constructeur:OriginalL'auteur dahlbyk
voici un exemple simple de la classe singleton
ici, Readonly permet
thread-safety
, ce qui signifie qu'il peut être seulementallocated once
. Il a unpublic static getter
. LeInstance property
est utilisé par les appelants pour obtenir le singleton instance.Sealed
est connu pour permettre au compilateur d'effectuer des optimisations spéciales au cours deJIT compilation
. La finale des méthodes ci-dessus sont en instance privée constructeur et une méthode Initialize.Private constructors
moyenne de la classe peutonly allocate itself
.OriginalL'auteur love Computer science