Singleton code snippet

Soyez le premier à donner votre avis sur cette source.

Vue 11 780 fois - Téléchargée 390 fois

Description

Cette source est un Code snippet pour Visual Studio 2005 permettant d'implémenter un singleton.

Le code snippet va créer la classe, accessible par une propriété (publique) Instance.

Remarque : Cette implémentation de singleton est "thread safe".

Source / Exemple :


/// <summary>
    /// Singleton.
    /// </summary>
    sealed class ClassName
    {
        #region ClassName Singleton
        /// <summary>
        /// Unique instance of ClassName
        /// </summary>
        private static volatile ClassName instance = null;

        /// <summary>
        /// Synchronization's object
        /// </summary>
        private static object syncRoot = new Object();

        /// <summary>
        /// Get the unique instance of ClassName
        /// </summary>
        public static ClassName Instance
        {
            get
            {
                // Quick test
                if (instance == null)
                {
                    lock (syncRoot)
                    {
                        // Thread safe test
                        if (instance == null)
                        {
                            // First call, create the instance
                            instance = new ClassName();
                        }
                    }
                }
                return (instance);
            }
        }
        #endregion // ClassName Singleton

        /// <summary>
        /// Private constructor of the singleton
        /// </summary>
        private ClassName()
        {
        }
    }

Conclusion :


Pour "installer" ce code snippet dans Visual Studio :

- Menu Tools, puis "Code Snippets Manager".
Il suffit ensuite d'importer le fichier founit dans cette source.

Pour utiliser le code snippet :
- Dans l'éditeur de code, taper "Singleton", puis appuyer sur <Tab>.
- Remplacer ClassName par le nom de votre classe singleton, puis appuyer sur <Entrée>.

Un lien utile, pour créer/éditer des code snippets avec Snippy :
http://www.gotdotnet.com/codegallery/codegallery.aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
28 juin 2007

Oui en effet, il restais juste a dire que pour créer le premier objet dans une autre classe, au lieu de faire :
ClassName classname = new ClassName;
On nfait plutot
ClassName classname = ClassName.Instance;
Voila J'espère que ça aidera quelques uns parce que pour quelqu'un non habitué avec les singletons ce n'est pas très facile au début.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
C'est le principe du singleton. Tu accedes a une instance unique via la propriété Instance
Messages postés
15
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
28 juin 2007

Merci pour ton code, mais j ai une petite question. Ici le constructeur est déclaré "private". Comment on fait alors pour créer une première instance de l'objet ?
Merci de votre réponse.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Très bonne idée l'idée du .snippet :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.