引用: ゲームプログラマのためのコーディング技術 by 大圖衛玄(Moriharu Ohzu)さん
悪い例
void update(const GameTime& deltaTime){
// 移動
for (iter i = actors.begin(); i != actors.end(); ++i) {
(*i)->move(deltaTime);
}
// 衝突判定
collide();
}
移動という実作業と、collide()という関数呼び出しの作業が混ざっている。
良い例
void update(const GameTime& deltaTime)
{
move(deltaTime);
collide();
}
update()では関数を呼び出すだけにしておく。
衝突判定が関数化されているのであれば、移動処理も関数化しないと不自然な印象を持ちます。これは、関数内のコードの抽象度が異なっているのが原因です。
...
関数内に何かの実作業が複数あると、コードは複雑になるだけでなく、関数の単体テストも難しくなります。