Java游戏中定义常量值的最佳实践
我目前正在用Java编写一个基于回合的策略游戏,我现在需要开始为一些游戏元素定义规则和行为。具体来说,地图上的每一块瓷砖都会有建筑物。每个回合,每个建筑都将根据建筑类型生产或消耗资源(木材厂消耗1根原木,生产1块木材,面包房消耗1颗小麦,生产1块面包,等等)。Java游戏中定义常量值的最佳实践,java,constants,Java,Constants,我目前正在用Java编写一个基于回合的策略游戏,我现在需要开始为一些游戏元素定义规则和行为。具体来说,地图上的每一块瓷砖都会有建筑物。每个回合,每个建筑都将根据建筑类型生产或消耗资源(木材厂消耗1根原木,生产1块木材,面包房消耗1颗小麦,生产1块面包,等等)。Building类是泛型的,它有一个字段buildingType,表示它是什么类型的建筑,其中buildingType是一个枚举。这些规则对于同一类型的每个建筑都是相同的(所有面包店都将遵守相同的规则,等等),并且在整个游戏中都是不变的 我
Building
类是泛型的,它有一个字段buildingType
,表示它是什么类型的建筑,其中buildingType
是一个枚举。这些规则对于同一类型的每个建筑都是相同的(所有面包店都将遵守相同的规则,等等),并且在整个游戏中都是不变的
我遇到的问题是如何定义这些规则。到目前为止,我提出了三种选择:
BuildingType
返回规则BuildingType
创建Building
的子类,并在每个Building
子类中将与该建筑类型对应的规则定义为静态字段- 磁盘读取速度很慢,因此在Java类中定义常量似乎可以使游戏加载速度更快
- 在磁盘上有一个单独的文件可以让讨厌的用户更容易修改规则
- 虽然选项3看起来更像是“Java风格”的方法,但每个
的行为方式完全相同,只是遵守不同的规则。因此,创建一组只定义不同常量的不同类似乎需要很大的开销建筑
- 我更希望规则都存储在一个中心位置,而不是分散在一堆不同的子类中
- 在选项2中设置
常量似乎是确保规则只读的最佳方法静态final