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のフォローもぜひお願いします!









人生をコンテンツにしたブログ

ブロガー人生の結果を、このブログで示します。



ビットコインを買うならZaif取引所がおすすめ!

Zaif取引所は他の主要取引所と比べて手数料が安いのが特徴。
ビットコインの他、イーサリアム、モナーコイン、ネムも購入可能です。


コメントを残す

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