Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > singletonライブラリ > Singletonモジュール

module Singleton

クラスの継承リスト: Singleton

要約

Singleton パターンを提供するモジュールです。

Mix-in により singleton パターンを提供します。

Singleton モジュールを include することにより、クラスは高々ひとつのインスタンスしか持たないことが保証されます。

Singleton を Mix-in したクラスのクラスメソッド instance はその唯一のインスタンスを返します。

new は private メソッドに移され、外部から呼び出そうとするとエラーになります。

サンプルコード

require 'singleton'

class SomeSingletonClass
  include Singleton
 #....
end

a = SomeSingletonClass.instance
b = SomeSingletonClass.instance # a and b are same object
p [a,b] # => [#<SomeSingletonClass:0x0000562e6e18ddd0>, #<SomeSingletonClass:0x0000562e6e18ddd0>]
a = SomeSingletonClass.new  # => NoMethodError (private method `new' called for SomeSingletonClass:Class)

特異メソッド

定義 説明
instance -> object

そのクラスの唯一のインスタンスを返します。最初に呼ばれたときはそのインスタンスを生成します。

インスタンスメソッド

定義 説明
clone

@raise TypeError このメソッドを呼び出した場合に発生します。

dup

@raise TypeError このメソッドを呼び出した場合に発生します。