自定义对象属性 - 多个原始变量或对象数组

Custom Object properties - multiple primitive variables or array of objects

我对编程比较陌生,我尝试制作简单的应用程序。应用程序将允许用户为流行的角色扮演游戏制作角色 sheet。现在我正在尝试(在纸上)对其进行建模并提出(可能是一个愚蠢的)问题。

每个角色都有一套技能 - 很多 (33)。每个技能手杖都有0-5的价值。现在我的问题是:制作 33 ints insied Character 对象还是制作 Class Skill 并在角色中制作技能数组更好?我对 Java 的了解不足以做出决定 :( 如果有人找到一些有用的文章或者可以简单地向我解释一下,我将不胜感激。

我只希望这不是完全愚蠢的问题:) 祝你有美好的一天!

我绝对推荐创建一个特定的技能class。今天你使用的是从 0 到 5 的整数;但是这样的事情往往会很快变得更加复杂。

因此,您应该预先仔细设计 "Skill" class(您也可以考虑使用技能接口;因为您可能需要在以下位置使用不同的实现(针对不同的技能类型)一些未来点)。

您的角色 class 可能正在使用动态容器;例如 java.util.ArrayList 掌握各种技能。

制作一个class技能可能更好,因为那样你可以确保每个技能都有一个名称和一个值。然后,你也可以做一些事情,比如创建一个打印或显示名称和值的方法,如果你想为技能添加另一个属性,这很容易。

您可以使用 int 元素数组。它应该足够了,除非你想要一些自定义逻辑。如果值应该有状态和动作,那么它们应该是对象。

如果你有固定数量的技能,你可以使用多个属性,使用时会增加可读性,但会使你的 class 有点难看,更难维护。

如果值始终是 int,我建议使用 Map 而不是 arrayCollection

Map<String, Integer> skills;

因此您可以拥有一个带有漂亮声明的 class 并按名称而不是按数组中的位置引用技能:

Integer strenghtLevel = skills.get("strenght");