Rubyにおけるシングルトンパターンの実装方法についてまとめる。
シングルトンパターンとは
シングルトンパターンは、インスタンスが1つしか存在しないことを保証するデザインパターンである。
Singletonモジュールを作成する方法
RubyにはSingletonモジュールが用意されており、これを使うことでシングルトンパターンを実装することができる。
newメソッドをprivateになるため、Config.newでインスタンスを生成することができない。そのため、Config.instanceで唯一のインスタンスを取得することができる。
クラスメソッドを使う方法
newをprivateにして、クラスメソッドでインスタンスを管理する方法もある。
newがprivateであるため、Config.newでインスタンスを生成することができない。そのため、Config.instanceで唯一のインスタンスを取得することができる。
定数を使う方法
クラス変数を使わず、定数を使ってシングルトンパターンを実装する方法もある。
定数にnewしたインスタンスを代入し、newメソッドをprivateにすることで、唯一のインスタンスを取得することができる。
まとめ
Rubyにはシングルトンパターンを実装するための方法がいくつかある。
その中でも、Singletonモジュールを使う方法が標準的であり、スレッドセーフな安全な実装であるため推奨される。(たぶん)