katashinコメントをどうぞあるオブジェクトが絶えずアニメーションをするようなコードを書く時、様々な状態に応じて挙動を変えたいというのはよくあることだと思います。単純に実装すると、状態に対応するフラグを記録しておき、それに応じて条件分岐するという書き方になると思います。状態の数が増えると、フラグ管理が大変になり、コードがどんどん汚くなっていきます。パターンのように、状態ごとに別々の挙動を行う関数を定義し、オブジェクトの状態が遷移した時に実行する関数を切り替えるようにすると、コードが状態ごとに整理され、見やすくなります。オブジェクトについて考えます。毎回このメソッドが呼ばれます。更新され、押した方向へとボールが動きます。要素の追加などのコードは省いています。オブジェクトを拡張して、一定の速度以上の時は壁にぶつからなくするようにしたり、マウスポインターを乗せたときに動きを止め何らかのエフェクトをかけたりすると、条件分岐が増えてつらくなってきます。書いた直後は良いのですが、時間が立つにつれ、各条件分岐について完全に把握することは難しくなり、コードの変更の際、バグを混入させる確率が上がります。オブジェクトの挙動をよりすっきりとしたコードで書くことができます。パターンでは、各状態ごとにクラスを定義し、ある状態の時のオブジェクトの挙動は、対応する状態のクラスのみに記述されます。オブジェクトの挙動をそのオブジェクトのクラスに書くのではなく、状態のクラスに書くという点が特徴です。パターンで書くと以下のようになります。各状態ごとの挙動を定義した関数を作ります。いうプロパティを追加します。メソッドの中で毎回呼ばれます。状態に対応した関数を代入するようにします。内部以外に状態によって挙動が変わる部分がないため、関数自体を切り替えています。時に実行される関数を状態ごとに変えることによって、アニメーションの挙動の記述の条件分岐を減らし、コードをすっきりとさせました。パターンで書き直したほうが良いように思います。コメントをキャンセルメールアドレスが公開されることはありません。本アーカイブ2019年4月2018年12月2018年8月2018年7月2018年6月2018年2月2017年11月2016年6月2016年5月2016年4月2016年3月2016年2月2016年1月2015年11月2015年10月2015年1月2014年7月2014年2月2014年1月Twitter@ktsn。