概要 最近、無駄にSingletonが使われているプログラムをメンテナンスする機会があり、非常に残念な思いをしているので、このつらさを世の中に広めないために書きます。 他にもSingletonが使われていることによって残念な思いをしている人を探してみましたが、日本語では見当たりませんでした。海外の記事は見つけました。 全く同じ理由でSingletonのつらさを感じていたのでそのまま訳します。 1) Singletonはグローバルスコープからの呼び出しによく使われる 正しい。 しかし、何のためにでしょうか? singletonパターンはあるシステム上で明確に1つだけしか存在しない呼び出しを提供する。よって、サービス内でオブジェクトの参照を持ち回る必要がなくなる。 しかし、そのような使い方は、グローバル変数と何が違うのか?(ご存じの通り、グローバル変数って良くないよね?) Singletonで
![シングルトンが邪悪な理由](https://cdn-ak-scissors.b.st-hatena.com/image/square/98ff3619e791bfb6bfd4ba677d75cd9a367edbce/height=288;version=1;width=512/https%3A%2F%2Fblog.teraren.com%2Fwp-content%2Fuploads%2F2012%2F11%2Fimg4.png)