こんにちは。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
実行結果の通り、シングルトンモジュールを使うことで、一つだけの設定値を保存することができました。
アプリケーションの設定値を保存する場合は、このようにシングルトンモジュールを使えば良さそうですね。
まとめ
- アプリケーションの設定値のような、一つだけのオブジェクトを作る手法をシングルトンパターンと呼ぶ
- Rubyでシングルトンパターンを実現するには、シングルトン(Singleton)モジュールを使うと便利
- シングルトンモジュールを使うには、「require ‘singleton’」を読み込み、対象のクラスで「Singleton」モジュールをincludeする
- 関連記事
Tomoyuki
最新記事 by Tomoyuki (全て見る)
- 【スト6】モダンキャミィの初心者向けコンボまとめ【STREET FIGHTER 6(ストリートファイター6)】 - 2024年11月10日
- モンハンワイルズでおすすめのオプション設定まとめ【Monster Hunter Wilds】 - 2024年11月4日
- モンハンワイルズでおすすめのグラフィック設定まとめ【Monster Hunter Wilds】 - 2024年11月2日
コメントを残す