【しんぐるとん】
シングルトン とは?
最終更新:
💡 決めた範囲で、同じ1個のインスタンスを共有する
クラスのインスタンス生成を制御し、同じ一つのインスタンスへのアクセスを提供するデザインパターン。一つになる範囲は実行環境や実装によるため、複数プロセスやサーバーをまたぐ唯一性は別途管理する。
📌 このページのポイント
シングルトンって何のためにあるの?
どうやって一つにするの?
複数のサーバーでも一つだけになる?
共有すれば状態のズレもなくなる?
同じものを参照できても、同時に状態を書き換える競合は起こり得るよ。また共有状態がテストへ残ったり、直接getInstance()を呼ぶ設計だと別の実装へ差し替えにくかったりするんだ。
テストしやすくするには?
まとめ:ざっくりこれだけ覚えればOK!
「シングルトン」って出てきたら「決めた範囲で同じ1個のインスタンスを共有するパターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Singleton」 = 一つだけのもの
💬 同じ一つのインスタンスを使う、という意味と結び付けると覚えやすいね