[英]Ruby Singleton, module vs class
我希望在ruby vs class和vs module中得到不同的实现单例模式。我只是讨论单例类和单例方法而没有实例。 至于我,使用是合乎逻辑的
module Foo
def self.foo= other
@@foo=other
end
def self.foo
@@foo
end
end
但是我经常在别人看到代码class Foo;....;end
和我想了解为什么?如果没有实例且没有子类Module
更方便。 或者我可能会错过什么?
问题是单例模式实现中模块和类之间的差异是什么?
在Ruby中获取对象的最简单方法是使用一个对象:
class << Foo = Object.new
attr_accessor :foo
end
使用模块或类是过度杀伤,两者都具有您不需要的功能。
单例是对象,其类确保仅实例化一次,并且所有客户端共享相同的实例。
Ruby的Singleton
模块有助于以方便的方式实现这一目标。
Singleton
模块而不是重新发明轮子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.