Rubyのシングルトン(Singleton)モジュールの使い方


こんにちは。Tomoyuki(@tomoyuki65)です。

Rubyのモジュールには、ライブラリの設定値(config値)をモジュール自身に保持させることがあります。

その場合、シングルトンパターンでオブジェクトを作成するのが望ましいです。

この記事では、そんなシングルトンパターンについて解説します。

 



シングルトンパターンとは?

アプリケーションの設定値は、いつでもどこでも同じ値である必要があり、設定値の情報はアプリケーション内で一つだけであることが望ましいです。

そのような一つだけのオブジェクトを作る手法をシングルトンパターンと呼びます。

Rubyのクラスを使ってシングルトンパターンを実現するには、シングルトン(Singleton)モジュールを使うと便利です。

 

シングルトン(singleton)モジュールの使い方

シングルトンモジュールを使うには、まずrequireで「’singleton’」を読み込みます。

そして、対象のクラスにシングルトンモジュールをincludeします。

シングルトンモジュールをincludeしたクラスは、次のような挙動に変わります。

  •  newメソッドがprivateメソッドになる
  •  クラスの特異メソッドとしてinstanceメソッドが定義される

 

では例として、以下のプログラムを実行してみて下さい。

require 'singleton'

# Configクラスを定義
class Config
  # Singletonモジュールをincludeする
  include Singleton

  attr_accessor :url

  def initialize
    # 設定値を初期化
    @url = ''
  end
end

# instanceメソッドを使い、インスタンスを取得
config = Config.instance
config.url = 'https://exp.com'

# instanceメソッドを使い、再度インスタンスを取得
other_config = Config.instance
puts other_config.url

 

実行結果
https://exp.com

 

実行結果の通り、シングルトンモジュールを使うことで、一つだけの設定値を保存することができました。

アプリケーションの設定値を保存する場合は、このようにシングルトンモジュールを使えば良さそうですね。

 

まとめ

  •  アプリケーションの設定値のような、一つだけのオブジェクトを作る手法をシングルトンパターンと呼ぶ
  •  Rubyでシングルトンパターンを実現するには、シングルトン(Singleton)モジュールを使うと便利
  •  シングルトンモジュールを使うには、「require ‘singleton’」を読み込み、対象のクラスで「Singleton」モジュールをincludeする

 

  • 関連記事

オススメのRuby入門サイトはどれ?Rubyの学習方法をまとめる

2017.10.24

 

The following two tabs change content below.
Tomoyuki

Tomoyuki

好きなことで生きたくて、SEを辞めてブロガー&ゲーム実況で活動中。パソコン、ネット、ゲームが大好き。YouTubeのチャンネル登録&Twitterのフォローもぜひお願いします!








シェアはこちらから


本を、聴こう。

オーディブルなら、プロの声優やナレーターが朗読した本(音声コンテンツ)を、耳で聴いて楽しめます。



資産運用ならウェルスナビがおすすめ!

ウェルスナビなら誰でも簡単に自動で資産運用を始められますよ!
まだ資産運用を始めてない人は、ぜひ一度チェックしてみて下さいね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です