やったこと
Ruby で singleton を使ってみます。
今回は用意されているライブラリを使います。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
test.rb
require 'singleton'
class SingletonSample
include Singleton
attr_accessor :count
def initialize
@count = 0
end
end
p 'obj1'
obj1 = SingletonSample.instance
puts obj1.count
obj1.count += 1
puts obj1.count
p 'obj2'
obj2 = SingletonSample.instance
puts obj2.count
obj2.count += 1
puts obj2.count
p 'id'
p obj1.object_id
p obj2.object_id
出力結果
$ ruby test.rb
"obj1"
0
1
"obj2"
1
2
"id"
70354869597880
70354869597880