基本上,我的问题与this一样,除了我必须在特定的时间点上对每个常量执行代码。没有巨大的“常量”类存储游戏对象常量
更具体地说,我试图让我的游戏插件更坚持面向对象和良好的设计原则和标准。以前,我们有巨大的类包含游戏对象常量,巨大的静态register
方法(例如registerFirearms
,registerArmor
)将这些对象注册到其适当的注册表,然后将它们分配给它们的全局常量。
例如:
public class Items {
public static Item firearm;
public static void register() {
registerFirearms();
}
public static void registerFirearms() {
firearm = new FirearmItem();
Registry.register(firearm);
}
}
在游戏加载过程中适当的时候,Items.register();
会被调用,所有在类中的值将是准备在整个插件使用。
我只是不太确定我应该如何去存储这些对象实例,而没有一些可怕的不可维护的几千行类。
有很多这样做的游戏,比如'Minecraft'和'Terraria'。他们有每个〜1000行的“常量”文件。所以我认为这是通常的做法(根本不是专家) – ItamarG3
啊,有时间加入我的肥皂盒。将常量分组,而不是通过它们不变的事实,而是通过它们在逻辑上属于您的设计的位置。就像对另一个问题的接受答案一样。 –
可能相关:http://softwareengineering.stackexchange.com/questions/338805/is-it-bad-design-to-leave-a-constants-class-when-refactoring –