シングルトン [1] それ自体は素晴らしいデザインパターンであるが、誤った目的のために使用されているのではないかと思う例を、度々見掛ける。具体的には、「どこからでも容易にアクセスするための手段を提供する」ためにシングルトンを用いることだ。これについて考えを少し書いてみたい。 シングルトンの目的 GoF 本を読み返してみると、シングルトンの目的の節には次のように書かれている。 あるクラスに対してインスタンスが 1 つしか存在しないことを保証し、それにアクセスするためのグローバルな方法を提供する。 見ての通り、決して「あるクラスのインスタンスにグローバルにアクセスするための方法を提供する」という内容ではない。その後の動機の節を読み進めても、そういったことは一切書かれていない。つまり、シングルトンというのは、インスタンス数に対する保証を得ることが目的のためのパターンなのだ。シングルトンが、「生成