Singletonの勘所
Singletonとは、デザインパターンの1つであり、プログラムの実行中にインスタンスが唯一である事を保障したいときに利用するパターンです。
・複数のインスタンスが悪影響を出す可能性があり、インスタンスの生成(new)に時間が掛かる場合に使う。
しかしながら、Javaのようなグローバル変数というものが存在しない言語においては、グローバル変数のように利用できるので、諸刃の剣という見方もできる。
私が最近、2件立て続けにSingletonによる不具合に遭遇したので、記事にしたいと思います。
1件目。下層フレームワークの制約からSingletonで状態管理をしなければならなかったのですが、同じJava VM上でプログラムを2個同時に実行した時に、どちらからでも状態の変更ができてしまった。


