しかし、PHPはリフレクション使わなくてもクラス名の文字列を変数に格納してそこからインスタンスが簡単に生成できる、って良いやら悪いやら。
まぁ、悪い面はコーディングのパターンでなんとでもなるので、使える物は最大限に使わせて貰いましょうと、言うことで、stateクラスのファクトリーで具象クラスを特定するために条件文と文字列連結でクラス名を組み立ててそこからインスタンスを生成する、というアレなコードが出来上がるわけですがw
「class_exists()」という、文字列で指定したクラス名のクラスが存在するかどうか判定する関数が組み込みで用意されている時点で推して知るべしって感じデスww


stateクラスは内部に状態を持たせない、というのがシンプルに実装する鉄則なので、どうしても具象クラスの数が増えるわけで、そうするとファクトリの行数がやたら増えるのが常。
文字列連結でクラス名を生成する方法ですら70行とか長いし、コレを「普通」の方法でやると2〜2.5倍になりそうという勢いデス、ええ。
#実際は、行数よりも条件のネストがトンデモになりそうなのでやりたくないってのが本音ですが。