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ď č. 1Nič, 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í.