>>800
> 状態数だけ型を作るというのが現実離れしてそう。

それは一つの型で1ファイル使おうと思うから。

例えばJavaであれば内部クラスを使って一つのファイルに複数の型を定義すれば良い。
http://www.atmarkit.co.jp/ait/articles/1007/27/news103.html