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
Commentaires