Créer un singleton ruby

Parfois il s'avère nécessaire de ne travailler que sur une seule et même instance d'un objet. Exemple : l'objet de la connexion à la base de données. En effet il est préférable de récupérer une seule connexion plutôt que de créer une connexion à chaque fois que l'on fait un appel à la base.

En ruby, pour s'assurer qu'une classe est instanciée une seule fois, il suffit d'inclure dans la définition de notre classe, le module "Singleton" et ça donne :

 def Klass   include Singleton end 

On peut alors instancier notre classe de la manière suivante et vérifier que notre instance est bien unique :

 ruby-1.8.7-p334 :003 >   a,b = Klass.instance, Klass.instance  => [#<Klass:0xb58f52b8>, #<Klass:0xb58f52b8>] ruby-1.8.7-p334 :006 >   a == b  => true 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.