Pedia

Singletonパターン(シングルトン)

しんぐるとん

意味

Singleton(シングルトン)パターンとは、あるクラスのインスタンスが、プログラム全体で「一つしか存在しない」ことを保証するデザインパターン。設定情報を管理するクラスや、データベース接続を行うクラスなど、複数のインスタンスを作ると不都合が生じる場合に使われる。

概要

GoFのデザインパターンの一つ。 「あるクラスのインスタンスが、プログラム全体で絶対に『1つ』しか存在しないこと」を保証する仕組み。

なぜ1つにするのか?

例えば、「システムの設定情報」や「データベースへの接続係」などが、勝手に何個も作られると困る場合がある。 「設定AではONになっているのに、設定BではOFFになっている」という矛盾が起きないように、「設定係」は世界に一人だけにしたい。

実装方法

コンストラクタ(生成メソッド)を private にして外部から new できないようにし、代わりに getInstance() というメソッド経由でのみ、唯一のインスタンスを取得できるようにする。

欠点

便利だが、グローバル変数のようにどこからでもアクセスできてしまうため、使いすぎると依存関係が複雑になり、テストがしにくくなる(アンチパターンと言われることもある)。

タグ

TOP / 検索 Amazonで探す