Синглтон-модуль или методы класса + переменные экземпляра класса для синглтоноподобного поведения в Ruby? - PullRequest
0 голосов
/ 12 сентября 2011

Мне нужен класс с одноэлементным поведением.

В чем разница между использованием модуля 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 Ответ

1 голос
/ 12 сентября 2011

Ничего, поскольку вы написали свой код - но синглтон - это класс, который допускает только один экземпляр. Ничто во втором фрагменте кода не запрещает создание нескольких экземпляров.

...