今日の勉強

Singletonパターンとは、インスタンスが一つしか存在しないことを証明するパターンのこと。

# singleton pattern

# use singleton library
require "singleton"

class MyClass
  include Singleton
end
a = MyClass.instance
b = MyClass.instance

puts a == b

# my singleton
class HogeSingleton
  private_class_method :new
  
  def self.instance
    @self = new if @self.nil?
    @self
  end
end

# HogeSingleton.new   → error
c = HogeSingleton.instance
d = HogeSingleton.instance
puts c == d

マルチスレッド対応とは言わないでw