基本上,我的問題與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 –