Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Singleton Pattern

概要

Singleton Pattern

詳細

Singleton Patternは、1つのインスタンスを保証するパターンです。

サンプル仕様

システムで唯一のアクセスカウンタを作成します。

サンプル

require 'singleton'

class AccessCounter
  include Singleton
  attr_reader :counter

  def initialize
    @counter = 0
  end

  def increment
    @counter += 1
  end
end

COUNTER = AccessCounter.instance
puts COUNTER.counter
10.times { COUNTER.increment }
puts COUNTER.counter

begin
  AccessCounter.new
rescue => e
  puts e
end

出力

0
10
private method `new' called for AccessCounter:Class