ふつうのオブジェクトは、どこで生成して、どこで保持して、…ということを、きちんと考えないといけない。いろいろな箇所で使う場合は、関数やクラスの間で、オブジェクトを受け渡してあげないといけない。 ところが、Singletonは、そのようなことをまったく考えずに、アプリケーションのどこでも自由に使える。 これは、よく考えてみると、次のようなコードと同じである。 つまり、グローバル変数の代用として、Singletonパターンを使ってしまっているケースがある。 変数をグローバルに宣言してしまえば、どこからでも参照できるので、手軽である。そのため、プログラミングの初心者には、グローバル変数を多用したがる人もいる。 グローバル変数を多用するのが誤った考えであることは、大抵の人は理解している。にも関わらず、グローバル変数の代用として、Singletonパターンを使っているケースが、少なくない。 この背景