Singleton module or class methods + class instance variables for singleton-like behaviour in Ruby?
I need class that has singleton behaviour.
What's the difference between usin开发者_StackOverflow社区g the Singleton module...
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
...and using class methods and class instance variables?
class X
def self.set_x(x)
@x = x
end
def self.test
puts @x
end
end
X::set_x('hello')
X::test
Nothing, as you wrote your code--but a singleton is a class that only allows a single instance. Nothing in the second code snippet disallows instantiation of multiple instances.
精彩评论