Java中具有子类和变量的高效类组织

Java中具有子类和变量的高效类组织,java,class,organization,Java,Class,Organization,我正在创建一个数据系统来存放游戏中的各种物品,我不确定哪种组织方式更有效。例如,我有一个物品类,制作一个武器子类和另一个扩展武器的近战子类会比在物品类中创建几个变量更有效还是更无效,这些变量包含武器、盔甲或其他,以及另一个变量包含近战、远程或头盔等等。或者,这些方法的组合是否高效且易于灵活操作?问题很广泛,但一般来说,最好创建子类,而不是在某些基本项中存储过多的变量 从基础开始,一路往下走 public class Item { private String name; ...

我正在创建一个数据系统来存放游戏中的各种物品,我不确定哪种组织方式更有效。例如,我有一个物品类,制作一个武器子类和另一个扩展武器的近战子类会比在物品类中创建几个变量更有效还是更无效,这些变量包含武器、盔甲或其他,以及另一个变量包含近战、远程或头盔等等。或者,这些方法的组合是否高效且易于灵活操作?

问题很广泛,但一般来说,最好创建子类,而不是在某些基本项中存储过多的变量

从基础开始,一路往下走

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 {
    ...
}
您不必担心定义所有项的公共字段,比如名称


它对设计问题没有帮助,但因为它是一款游戏,如果你还没有看过的话,你可能也想看一看。

假设所有物品的属性都是相关的(它们都有
耐久性
属性),那么有一个父类来存储和处理它是有意义的。同样,如果所有武器都是相关的(它们都有一个
伤害
属性),那么有一个父类来存储和处理这个属性也是有意义的

因为项目之间似乎有很多关系,所以您应该创建子类,而不是逐个尝试。这还允许您在一个位置而不是在多个位置更改所述父属性的处理方式(更高效、更准确的算法)