>>331
例えば、スーパーマリオで、
通常マリオ、スーパーマリオ、ファイアマリオという状態に対するイベントの組み合わせを
条件分岐を使わずに書くと。

基底クラス、通常マリオ、スーパーマリオ、ファイアマリオを作って、
コントローラの操作やらゲーム内のイベントをそれぞれメソッドで定義し、
呼び出し側は基底クラスで参照しておく。

キノコ、フラワー、敵にぶつかった時は、各クラスが自分の次の状態のマリオの
インスタンスを返してやる。

こうすれば、イベントに対して、各マリオクラス固有に動作を実装するだけでよくて、
そこに条件分岐というものはどういう形であれ全く入って来ない。

言葉だけだと分かりずらいので、この辺参考にして貰えればいいと思う。
http://d.hatena.ne.jp/hkhumanoid/20090528/1243473358