シングルトンパターンのデメリット
ワタシはSingletonがキライだより
グローバル変数は悪≒ 密結合は悪
シングルトンパターンは、グローバルな振る舞いをする
Singleton は単体テストの敵
単体テストがすべてシングルトンオブジェクトに依存すると、テストを書きづらくなる
Singleton を避けるより
Singleton では, このガベージコレクションによる状態のクリアが起こらないため, 前のテストコンテキストを引きずったまま, 次のテストを実行することになってしまいます. 複数のテストが影響し合うことによりメンテナンス性が下がるだけでなく, 暗黙的なコンテキストの増大により, 理解もしづらくなります.
Singleton で実装したクラスそれ自体だけでなく, それを呼び出すクラスにまで, テストのしにくさが伝染してしまう可能性があるのです.