LoginSignup
2
2

More than 5 years have passed since last update.

関数を2種類に分類する > 実作業 / 関数呼び出し関数

Last updated at Posted at 2015-07-30

引用: ゲームプログラマのためのコーディング技術 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()では関数を呼び出すだけにしておく。

衝突判定が関数化されているのであれば、移動処理も関数化しないと不自然な印象を持ちます。これは、関数内のコードの抽象度が異なっているのが原因です。
...
関数内に何かの実作業が複数あると、コードは複雑になるだけでなく、関数の単体テストも難しくなります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2