Singletonパターン(シングルトン)
しんぐるとん
意味
Singleton(シングルトン)パターンとは、あるクラスのインスタンスが、プログラム全体で「一つしか存在しない」ことを保証するデザインパターン。設定情報を管理するクラスや、データベース接続を行うクラスなど、複数のインスタンスを作ると不都合が生じる場合に使われる。
概要
GoFのデザインパターンの一つ。 「あるクラスのインスタンスが、プログラム全体で絶対に『1つ』しか存在しないこと」を保証する仕組み。
なぜ1つにするのか?
例えば、「システムの設定情報」や「データベースへの接続係」などが、勝手に何個も作られると困る場合がある。 「設定AではONになっているのに、設定BではOFFになっている」という矛盾が起きないように、「設定係」は世界に一人だけにしたい。
実装方法
コンストラクタ(生成メソッド)を private にして外部から new できないようにし、代わりに getInstance() というメソッド経由でのみ、唯一のインスタンスを取得できるようにする。
欠点
便利だが、グローバル変数のようにどこからでもアクセスできてしまうため、使いすぎると依存関係が複雑になり、テストがしにくくなる(アンチパターンと言われることもある)。