【发布时间】:2011-01-02 19:00:10
【问题描述】:
我试图将一个类的实例化限制为一个(不使用单例),但我做不到。我尝试使用类变量(@@)但没有运气。 我用谷歌搜索了一下,发现了这个:
class A
@count = 0
class << self
attr_accessor :count
end
def initialize val
@a = val
self.class.count += 1
end
end
a=A.new 42
b=A.new 43
我搜索了 'class ' 的解释,希望能找到一个更好的(或者只是一个更简单和干净的),但再次失败,没有运气。 最后,经过一些测试,我得出结论 'class ' 只是一个块包装器,您可以在其中定义 class 方法。 那么,这是正确的吗?
问候!
【问题讨论】:
-
你的第一句话真的没有意义,因为如果你的类只能有一个实例,那么它就是一个单例,不管你如何实现该行为。还是你的意思是单例类(eigenclass)?
-
@John,我假设他的意思是标准库中包含的
Singleton类。
标签: ruby-on-rails ruby eigenclass