Download http://bigtheme.net/joomla Free Templates Joomla! 3
Singleton

C# – Coder un Singleton facilement

Le Singleton est un design parttern qui permet de s’assurer qu’un objet ne sera instancié qu’une seul fois durant toute la durée de vie de l’application. C’est-à-dire qu’elle renverra toujours la même instance quel que soit l’objet qui « l’appel » et le moment ou elle est appelé.

A quoi cela peut-il servir

Cela peut servir à pas mal de choses, par exemples :

  • Un gestionnaire d’image : Qui permet par exemples de renvoyer la même image si elle est demandé deux fois (si on essaye de la charger deux fois)
  • Un gestionnaire de son : Qui permet comme pour le gestionnaire d’image de renvoyer le même fichier son si il est demandé plus d’une fois
  • etc : Tout autre gestionnaire qui permet de charger des ressources dans le cas d’un jeu par exemple.

Comment l’implémenter

Bien entendu il y’a plusieurs manières d’implémenter un Singleton, ici nous allons voir l’une des méthodes que j’utilise le plus voir, dès lorsque je dois en implémenter un.

Pour commencer et pour l’exemple je créer une classe que je vais nommer UnSingleton (Vous avez vue l’originalité !)

 Pour le moment rien de transcendants.

Maintenant je vais créer deux variables qui vont me servir tout au long du Singleton, l’une du type de la classe pour l’instance de celle-ci et l’autre de type object me permettant de lock l’objet.

 Pour le cas de Lock je vous expliquerai en temps voulu, un tout petit peu plus bas lors de son implémentation.

Ensuite j’implémente le constructeur de base du Singleton. Et vue que le Singleton permet de renvoyer toujours la même instance si celle-ci est déjà créer, il nous est d’aucune utilité de mettre ce constructeur public. Allez on va le mettre en priver !

 Maintenant le bout de code le plus important, celui qui nous permet de renvoyer l’instance de la classe si elle est déjà créé, au quel cas il l’a créé et la renvoi.

 Et voilà !

[warningbox]Donc avant toute chose on « lock », en quelques sortes nous protégeons les données qui se trouve dans se bloque afin d’éviter que deux thread puisse modifier les objets de la classe en même temps, se qui peut être problématique un moment.[/warningbox]

Puis nous vérifions que l’objet m_instance ne vaut pas null, au quel cas nous devons la créer, puis on renvois l’instance.

Pour y accéder depuis une autre classe voici comment je procéderai :

 Comme vous pouvez le constater il n’y a toujours rien de transcendants dedans !

Ceci conclut ce petit tuto !

Avec ceci vous pourrez déjà créer un Singleton pour l’utiliser dans votre programme ou jeu, à vous de voir l’utilité de celui-ci dans votre code avant toute chose !

Je vous souhaite une bonne journée de coding à toutes et à tous !

Check Also

CaffeinatedPsychics C0ttron

C0ttron – Ludum dare 34

Pour certains, les JAMS sont un réel challenge dont le but n’est que de gagner, …

Laisser un commentaire