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 ...

Singleton design pattern
UML Class diagram Singleton

Avec un article général sur ce pattern :

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 ... Qui sont des problématiques systèmes, à résoudre absolument si l'on veut développer une application.

Finalement, la solution 4 est :

"Sealed" c'est pour sceller la Class qu'une autre Class ne puisse pas en hériter...

C'est la seule écriture qui résout la problématique du Singleton en C# : 

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 voici 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;
        }
    }
}

C'est assez aberrant de constater combien d'encre à fait couler cette simple spécification de déclarer une variable unique pour tout le programme... mais les affres du C# sont impénétrables et insondables. C'est en pratiquant que l'on acquiert l'expérience nécessaire à l'écriture de "bons programmes".

N'hésitez pas à commenter, à liker...

Aucun commentaire:

Enregistrer un commentaire

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