Modulo singleton o metodi di classe + variabili di istanza di classe per comportamento simile a singleton in Ruby?
-
29-10-2019 - |
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
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