>>696
Nullオブジェクトとか、不変オブジェクト。あと状態のないI/O系。

Example *example1 = Null::Instance();
Example *example2 = Null::Instance();

Mode *mode1 = AlphaMode::Instance();
Mode *mode2 = AlphaMode::Instance();
mode2 = BetaMode::Instance();

実体が一つなんで無駄が無くなる。
I/O系は、元々副作用があるから、シングルトンでも
引数渡しでも大して変わらん。

あと、シングルトンをグローバル変数替わりに使うのは間違い。
シングルトンのInstance();を呼び出すのは、他のクラスであれば
コンストラクタを呼ぶタイミングに限らないといけない。