Сокращение избыточности в методах - PullRequest
0 голосов
/ 27 января 2019

У меня есть Enum с абстрактным методом, и каждый случай в enum реализует этот метод.Однако в каждой реализации объявления переменных всегда одинаковы, и поэтому я получаю много избыточности.

public FSA next(Player targetPlayer, Player bot, double prevDist, double newDist) {
      Melee tmp;
      double weaponRange = (bot.getHolding().isGun()) ? Double.POSITIVE_INFINITY :
          (tmp = (Melee) bot.getHolding()).getRange();
      int ammoLeft = (bot.getHolding().isGun()) ? bot.getHolding().getAmmo() : 0;

      int botHealth = bot.getHealth();
      int enemyHealth = targetPlayer.getHealth();

      ...
    }

Каков наилучший способ уменьшить эту избыточность?Сначала я хочу создать вспомогательный метод private Object[] getInfo(Player target, Player bot), который возвращает массив с необходимыми переменными.Но мне это не кажется слишком чистым, что было бы лучшим способом сделать это?

1 Ответ

0 голосов
/ 27 января 2019

Сделать все переменные частью нового служебного класса.Предоставьте защищенный метод в базовом классе с помощью функции инициализации.

...