Modulo singleton o metodi di classe + variabili di istanza di classe per comportamento simile a singleton in Ruby?

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

Domanda

Ho bisogno di classe che abbia un comportamento singleton.

Qual è la differenza tra l'uso del modulo 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

... e usando metodi di classe e variabili di istanza di classe?

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

    def self.test
        puts @x
    end
end

X::set_x('hello')
X::test
È stato utile?

Soluzione

Niente, come hai scritto il tuo codice, ma un singleton è una classe che consente solo una singola istanza. Nulla nel secondo codice Snippet non consente l'istanziazione di più istanze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top