如何在Ruby中使用Singleton设计模式创建类?

如何在Ruby中使用Singleton设计模式创建类?

How do I create a Class using the Singleton Design Pattern in Ruby?

单例模式是一种设计模式,用于将类的实例化限制为一个对象实例。 尽管我知道如何在C ++和Java中编写单例模式,但我想知道是否有人知道如何在Ruby中实现它?


实际上,以上答案并不完全正确。

1
2
3
4
5
require 'singleton'

class Example
  include Singleton
end

您还需要包括require'singleton'语句。


使用单例模块:

1
2
3
class Clazz
  include Singleton
end

有关更多信息,请参见http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html。


您可以使用与我相信的效果相同的模块,尽管它不是"单例模式",但您可以通过这种方式具有全局状态(这就是单例!顽皮的全局状态!)。


推荐阅读