我正处于游戏开发的早期阶段。这是某种回合制游戏,例如战锤或魔兽争霸。有些生物可以再生他们遭受的伤害并代表这一点我有一个这样的界面
public interface Regenerative {
void regenerates();
}
所以再生的生物是
public class SomeMonster() extends BaseCreature implements Regeneative{
//Code
private int hitPoints;
public void regenerates(){
hitPoints = hitPoints + regenerateValue;
}
}
我面临的问题是,并非所有生物都能再生相同数量的生命值,所以我必须将这个数量(regenerateValue)放在某个地方。因为我不能把它放在界面上(因为我不希望所有生物的数量都相同)我考虑在生物类中添加一个新属性
public class SomeMonster() extends BaseCreature implements Regeneative{
//Code
private int regenerateValue;
public void regenerates(){
hitPoints = hitPoints + regenerateValue;
}
}
但我不喜欢这种方式(为什么不再生的生物的 regenerateValue 应该为 0?)。我认为它给了一个类不必要的属性,因此是一个糟糕的设计。您认为这种情况下最好的方法是什么?