組込型メンバ変数をクラス化する

built-in-type-class.png

ゲームプログラマのためのコーディング技術[1]では、組込型メンバ変数があったらそれをクラス化することを勧めています。
え、いくらなんでも細かくクラス化しすぎじゃない?
と思いますが、いくつか利点があります。
javaだとintとかをIntegerクラスにしてますが
これは自分でボクシングのクラスを作るようなイメージですね

組込型変数をクラス化するパターンとその利点

パターン 利点
変数に振る舞いを与える 可読性アップ
制限つき組込変数のクラス化 保守性のアップ

+ サンプルコード

可読性アップの例

timerがただのfloat変数の時 timerをクラス化した時
timer+=deltaTime;//タイマの更新
if(timer>=60.0f){//タイムアウトか?
    //一定時間ごとの処理
    timer=0;//タイマーをリセットする
}
timer.update(deltaTime);
if(timer.isTimeOut()){
    //一定時間ごとの処理
    timer.reset();
}

左右の違いは、右のほうが文章のように読めるコードになっているということでしょうか

変数に制限を与える

たとえば、MPは0〜99まで、みたいに値に制限がある場合、そういうのをクラス化すると
使う側は何もかんがえずに安全に使えます

サポートサイト Wikidot.com