我正在编写一个有趣的足球模拟器,但我不确定如何组织我的球员的属性评级。我知道随着游戏的改进,属性的数量会发生变化。我需要单独访问每个,即
SoccerPlayer.getSpeed()
SoccerPlayer.getShooting()
我也知道我希望能够使用单个函数对它们进行平均以获得总体评分。
SoccerPlayer.getOverall()
我的第一个倾向是使用列表或数组,使用常量来定义数组中每个属性的索引。
static final int SPEED_INDEX = 0;
static final int SHOOTING_INDEX = 1;
static final int NUM_ATTRIBUTES = 2;
int[] attributes = new int[NUM_ATTRIBUTES];
int getSpeed() {
return attributes[SPEED];
}
int getOverall() {
int total = 0;
for (int i : attributes) {
total += i;
}
return (total / attributes.length);
}
这样,每当我添加一个新属性时,我只需要更改总常数,并添加一个新的索引常数,总函数将始终有效。但是有没有更好的方法来做到这一点?