モノステートクラスとシングルトンクラスの使い分けってどうしたらいいんだ?
いまいち相違点というかメリット/デメリットが見えてこない。

互いに、アプリレベルでひとつしか実体を持たないし、
初期化するタイミングをユーザーが選択できる。

ポリモーフィズムできるか出来ないかぐらいか?