/ / Singleton modul alebo metódy triedy + premenné triedovej triedy pre správanie typu singleton v Ruby? - ruby, singleton, metóda triedy, premenné triedy-instance

Singleton modul alebo metódy triedy + premenné tried triedy pre správanie typu sameton v Ruby? - ruby, singleton, metóda triedy, premenné triedy-instance

Potrebujem triedu, ktorá má jediné správanie.

Aký je rozdiel medzi používaním modulu 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

... a používať metódy triedy a premenné triedy?

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

def self.test
puts @x
end
end

X::set_x("hello")
X::test

odpovede:

1 pre odpoveď č. 1

Nič, ako ste napísali svoj kód - ale singleton je trieda, ktorá umožňuje iba jednu inštanciu. Nič v druhom útržku kódu neumožňuje inštanciu viacerých inštancií.