我有一个带有抽象方法的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)
,该方法将返回带有所需变量的数组。但是对我来说,这似乎不太干净,最好的方法是什么?
答案 0 :(得分:0)
使所有变量成为新实用程序类的一部分。在带有初始化函数的基类上提供一个受保护的方法。