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

===============>>#1 票数:10 已采纳

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

require 'singleton'

class Example
  include Singleton
end

您还需要包含require'ingleton'语句。

===============>>#2 票数:8

使用单件模块:

class Clazz
  include Singleton
end

有关详细信息,请参阅http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html

===============>>#3 票数:0

你可以使用我认为的相同效果的模块,虽然它不是“单身模式”,你可以通过这种方式拥有全局状态(这就是单身人士!顽皮的全球状态!)。

  ask by CodingWithoutComments translate from so

未解决问题?本站智能推荐:

1回复

在Ruby中实现Singleton模式

尽管我已将FooFactory类声明为“ Singleton”,但其类变量@@ foo每次都会实例化。 为什么会这样呢? 主要的单例课程: 控制器代码: 查看代码: 我希望FooFactory中的print方法在第一次实例化FooFactory之后应该返回fals
1回复

Ruby中的单例与单态模式

假设一个类需要加载一个外部库,这需要花费一些时间才能加载,因此应该只加载一次。 两种自然的解决方案是使用单例模式或单态模式。 在Ruby的此特定上下文中,这些解决方案中的任何一个都有什么优势? 例如: 与: 由于第二种语法更加简洁,因此在Ruby中使用Singleton
3回复

在Ruby中编写单例模式的正确方法是什么?

我正在尝试用Ruby编写最安全的单例。 我对这种语言很陌生,这种语言很有弹性,我没有强烈的感觉,我的单例类只能创建一个实例。 作为奖励,我希望该对象只有在真正使用时才会被实例化。
2回复

如何将一个类的对象数限制为红宝石中的给定数?

我如何将单例模式扩展到一个类的多个对象,即,我最多只能有一个类的5个对象,而在ruby中不超过
20回复

在PHP5中创建Singleton设计模式

如何使用PHP5类创建Singleton类?
23回复

C ++ Singleton设计模式

最近,我碰到了C ++的Singleton设计模式的实现/实现。 它看起来像这样(我从实际示例中采用了它): 从该声明中,我可以推断出实例字段是在堆上初始化的。 这意味着存在内存分配。 对我来说,完全不清楚的是何时确切地将要释放内存? 还是有错误和内存泄漏? 似乎实现有问题。 我的主要问题是,
2回复

Guice @Singleton必须遵循Singleton设计模式吗?

使用@Singleton注释的类必须遵循Singleton设计模式吗? 我的猜测是它们没有:没有必要使用私有构造函数和static .instance()方法,而是Guice确保只实例化该类的一个实例。
1回复

如何在没有非构造函数的方法的情况下应用单例设计模式来返回类对象

我最近开始从事一个非常老的项目,从一开始就没有正确使用项目设计模式。 现在,在一种情况下,我要将现有的类设为单例类。 在大多数教程中,我已经看到单例类使用一种方法来返回对象引用,例如下面的getInstance()。 问题在项目对象中到处都在声明,而没有构造函数以外的任何方法的帮助。 有
2回复

在单例设计模式中使用复制构造函数和赋值运算符

我对Singleton设计模式的怀疑是,是否足以将构造函数设为私有。 我认为没有必要将复制构造函数和赋值运算符设为私有。 由于我们无法创建对象(对象将由静态函数创建,并将在静态指针中分配),因此将不会调用复制构造函数或赋值运算符。 这是正确的吗?
1回复

正确使用单例设计模式

我正在运行一个服务器,有时必须搜索客户端查询的内容。 我想将客户端查询写入磁盘以获取记录,但我不想放慢搜索速度。 (搜索已经成为瓶颈......) 因此,当客户端执行搜索时,我让客户端的线程向单个线程发送消息,该线程将处理磁盘写入,而客户端线程继续处理客户端的请求。 这样,磁盘上的文