我正在开发一款名为Tank的游戏。
每个坦克都有一个名为TankParameters
的类对象。 TankParameter
由坦克的速度,旋转速度和健康组成。
目前,我的计划是将TankParameters
类抽象化,并将TankParameters
类的不同实现传递给Tank
类。所以,我们假设我将有一个名为LightTankParameters
的实现,它将相应地设置属性。或者我可能会HeavyTankParameters
相应地设置属性。
现在我的问题是,而不是让我们说创建如此多的扩展TankParameters
的类将使TankParameters
作为非抽象类并使构造函数设置为更高效提供值的变量,或者最好继续为不同的TankParameters
类型创建类。
我问这个问题,因为我可以在游戏中添加功能,人们可以修改他们的坦克,从而修改坦克参数。
此外,如果有更多的实现更好,那么设置变量的更好方法是什么
是吗
public class LightTankParameters extends TankParameters{
private static final int MAX_HEALTH = 100;
public LightTankParameters() {
super(MAX_HEALTH);
}
}
OR
public class LightTankParameters extends TankParameters{
public LightTankParameters() {
super(100);
}
}
这是我的TankParameters类
public abstract class TankParameters {
/**
* Max health of the tank
*/
protected int maxHealth;
......
}
答案 0 :(得分:3)
我认为这是Creational设计模式Creational design patterns的工作。听起来你需要多个单一接口的实现。基于你的解释,这听起来像Factory Patterns
之一对你有用(这应该审查另一个创作模式可能对你更好,像Builder模式)。如果没有整体设置的整体视图,很难指定要使用的确切创建模式。我建议查看不同的创作设计模式,看看哪种模式最适合您的设置。