Ruby单例模式写法:
class Logger
@@instance = Logger.new
def self.instance
return @@instance
end
private_class_method :new
end
logger1 = Logger.instance
logger2 = Logger.instance
puts logger1
puts logger2
#looger3 = Logger.new # will not work
另外一种写法, 引用component:
require 'singleton'
class SLogger
include Singleton
end
logger1 = SLogger.instance
logger2 = SLogger.instance
puts logger1
puts logger2