繁体   English   中英

Ruby Singleton,模块与类

[英]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模块有助于以方便的方式实现这一目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM