Singleton Design Pattern

Le pattern singleton est l'un des pattern les mieux connu en ingénierie informatique. Une singleton est une classe qui ne permet qu'une seule instance d'elle même. Et pourtant, en lisant cet article, vous pourriez être surpris ...

http://csharpindepth.com/Articles/General/Singleton.aspx

Article traduit par Jérôme Lambert sur développez.com :

http://jlambert.developpez.com/tutoriels/dotnet/implementation-pattern-singleton-csharp/

Ce sujet permet d'aborder  un certain nombre de problématiques pointues comme le "thread-safe", l'initialisation des variables statiques ...

Finalement, la solution  4 est :

public sealed class Singleton
{
    private static readonly Singleton instance = new Singleton();

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    static Singleton()
    {
    }

  // This constructor to tell C# compiler to do not
  // create default public constructor
  private Singleton()
   {
   }

   public static Singleton Instance
   {
       get
       {
           return instance;
       }
   }
}

Et un exemple de ce qu'il ne faut pas écrire :

// Bad code! Do not use!
public sealed class Singleton
{
    private static Singleton instance=null;

    private Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            if (instance==null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
}

Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.