单例模块或类方法+类实例变量用于Ruby中的类似单例的行为?

时间:2011-09-11 22:59:09

标签: ruby singleton class-method class-instance-variables

我需要具有单身行为的班级。

使用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

...并使用类方法和类实例变量?

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

    def self.test
        puts @x
    end
end

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

1 个答案:

答案 0 :(得分:1)

没有,就像你编写代码一样 - 但是单例是一个只允许单个实例的类。第二个代码段中没有任何内容不允许实例化多个实例。