脱力駆動開発記

ゲームアプリを作るエンジニアの技術メモ

MENU

真偽値で2つのメソッドを呼び分ける

少しでもコードを短く書きたい人は下のようなコードを見た時どう思うのだろうか。

    public void PlayNext()
    {
        if (_isEndless)
        {
            PlayNextEndless();
        }
        else
        {
            PlayNextNormal();
        }
    }

どこかのstaticなクラスに以下のようなメソッドを書くと

 public static void CallByCondition(this bool condition, Action onTrue, Action onFalse)
    {
        if (condition)
        {
            if (onTrue != null) onTrue();
        }
        else
        {
            if(onFalse != null) onFalse();
        }
    }

もとのやつは以下の感じで表現できる

    public void PlayNext()
    {
        _isEndless.CallByCondition(PlayNextEndless,PlayNextNormal);
    }

こういう拡張に慣れると他のプロジェクトにジョインしたとき非常に困る。
かといって導入しようとすると多分嫌がられるという笑