【发布时间】:2012-09-06 11:58:48
【问题描述】:
我喜欢 Ruby 的单例,但我想更好地使用它,所以这里是示例
require 'singleton'
class Foo
include Singleton
def initialize
# code to setup singleton here
end
def self.get_bar
Foo.instance.get_bar
end
def get_bar
end
def get_nar
end
end
用法
Foo.instance.get_bar(默认)或Foo.get_bar(由于我制作的静态self.get_bar方法)
有没有一种优雅的方法可以让所有方法都可以访问,而无需我为每个方法编写静态包装器?为每个方法编写似乎是多余的.instance
更新
Ruby 1.8.7
【问题讨论】:
-
你真的需要使用 Singleton 模块吗? Foo 已经是一个单例了,你可以做 Foo.get_bar。
-
这只是一个例子。我有配置单例,它保存哈希映射中许多文件的配置。所以我需要单例,它只会读取这些文件一次并持久化哈希映射......
-
你也可以不使用 Singleton 模块。
-
是的,但更喜欢这种方式,因为它的实现更简洁。
-
怎么样?更新了问题以表明它不是 RoR 项目。
标签: ruby