I am creating a data system to hold a variety of items for a game and I am not sure what organizational style is more efficient. For example I have an Item class, would making a subclass of Weapon and another subclass of Melee which extends Weapon be more or less efficient than just creating several variables in the Item class which holds whether it is a weapon or armor or other and another which holds if it is melee or ranged or a helmet..etc. Or would a combination of these be efficient and organized to the point it is easily flexible to manipulate?
问问题
218 次
2 回答
1
这个问题很广泛,但一般来说,最好创建子类,而不是在某些基础项目中存储过多的变量。
从基地开始,一路向下。
public class Item {
private String name;
...
}
public class Weapon extends Item {
...
}
public class Melee extends Weapon {
...
}
public class Ranged extends Weapon {
...
}
这样你就可以定义像
public class Dagger extends Melee {
...
}
而且您不必担心定义所有项目共有的字段,例如名称。
它不会帮助解决设计问题,但由于它是一款游戏,如果您还没有看过轻量级 Java 游戏库,您可能还想看看。
于 2013-07-19T19:16:18.880 回答
0
假设所有项目的属性都是相关的(它们都有一个durability
属性),有一个父类来存储和处理它是有意义的。同样,如果所有武器都是相关的(它们都有一个damage
属性),那么有一个父类来存储和处理它是有意义的。
由于项目之间似乎存在很多关系,因此您应该创建子类而不是逐个尝试。这还允许您在一个地方而不是多个地方更改所述父母属性的处理方式(一种更有效、更准确的算法)。
于 2013-07-19T19:19:14.223 回答