同時に存在できるインスタンス数に制限のあるクラスはどう振舞えばいいんだろう

などと考えていたり。Singletonなら話は簡単で、最初の1回だけインスタンスを作って、次にまたコンストラクタが呼ばれたらさっき作ったインスタンスをそのまま指してやればいいんだけど*1、例えば3つまではインスタンスが存在していてもいいというクラスだとしたら、3つ目まではそのまま新しく作ってやればいい。けど、4回目にコンストラクタが呼ばれたとき(今まで作った3つのどのインスタンスも生きているとして)どう振舞えばいいんだろう。また1つ目、2つ目、3つ目と順に指し示していけばいいのかなぁ… けどこれだとSingletonと違って複数のインスタンスがいるから4回目以降は毎回どのインスタンスを示すかが変わってくるし。例外を投げて死ぬとか、あるいは警告して未定義を返すとか? こういうのって何か標準的な振る舞いってあるのかなぁ。
…そもそもそんなクラスおかしくない?どうするのって話ですね、わかります。

*1:マルチスレッドを考えたらもう少しいる?