Module Singleton ou méthodes de classe + variables d'instance de classe pour un comportement de type singleton dans Ruby?

StackOverflow https://stackoverflow.com/questions/7381858

Question

J'ai besoin d'une classe qui a un comportement singleton.

Quelle est la différence entre l'utilisation du module Singleton ...

require 'singleton'

class X
    include Singleton

    def set_x(x)
        @x = x
    end

    def test
        puts @x
    end
end

X::instance.set_x('hello')
X::instance.test

... et en utilisant des méthodes de classe et des variables d'instance de classe?

class X
    def self.set_x(x)
        @x = x
    end

    def self.test
        puts @x
    end
end

X::set_x('hello')
X::test
Était-ce utile?

La solution

Rien, comme vous avez écrit votre code - mais un singleton est une classe qui n'autorise qu'une seule instance.Rien dans le deuxième extrait de code n'interdit l'instanciation de plusieurs instances.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top