两个很相似的方法,能否合并为一个方法

     private int GetAllMonsterEXP()
    {
        int exps = 0;
        for (int i = 0; i < monsterNum; i++)
        {
            exps += MonsterInitInfoList[roleAttMonsterIndex].exp;
        }
        return exps;
    }


    private int GetAllMonsterGold()
    {
        int gold = 0;
        for (int i = 0; i < monsterNum; i++)
        {
            gold += MonsterInitInfoList[roleAttMonsterIndex].gold;
        }
        return gold;
    }

就是上面两个方法,可以合并为一个方法吗,通过传递匿名方法之类的??

如果只有这两个方法,暂时不重构也无所谓,很清晰,如果要重构,可以重构成这样

  private int GetAllMonsterEXPOrGlod(boolean isGetExp)
    {
        int data = 0;
        for (int i = 0; i < monsterNum; i++)
        {
                        if(isGetExp){
               data += MonsterInitInfoList[roleAttMonsterIndex].exp;
                        }else{
                           data += MonsterInitInfoList[roleAttMonsterIndex].gold;
                        }
        }
        return data;
    }

如果多的话,if 换个switch case ,参数换个String 或者 int

如果需要获取的数据类型有很多,那就改策略模式就好了

不用吧 这样挺好 :-)

感觉这2个就是一个方法的样子

      private int GetAllMonsterEXP()
    {
        int exps = 0;
        for (int i = 0; i < monsterNum; i++)
        {
            exps += MonsterInitInfoList[roleAttMonsterIndex].exp;
        }
        return exps;
    }


    private int GetAllMonsterGold()
    {
     return GetAllMonsterEXP();
    }

我感觉两个方法都是一样的啊,应该可以和并成一个直接使用