簡體   English   中英

屬性或枚舉或靜態最終

[英]Properties or Enums or static final

當在名稱 - 值對中聲明預定義常量時,我​​一直在“java.util.Properties”,“enums”或具有“public static final”值的單獨類中隨機選擇。

為了將來參考,我需要一些指導方針。

謝謝!

這一切都取決於你不斷的生命周期。 根據定義,常量是不移動的東西。 選擇正確的方法將是一個可能改變和重新包裝需求的問題。

  • 如果你真的確定,它永遠不會動起來:靜態決賽是要走的路。 Pi,數學常數,這樣的事情就是一個很好的例子。

  • 如果您認為存在潛在的變化但需要易於操作代碼並且不擔心上升兼容性,那么枚舉就可以了。 我之前為錯誤代碼做了那個。

  • 如果您認為存在潛在的變化,但您不希望此更改影響您的代碼,則屬性(使用資源包)是更好的選擇。 標簽(翻譯),初始設置等也是一個很好的例子。

當您無法形成一組明確的閉合選項時,可以使用static final字段,您可以從中選擇變量的狀態。 相反,當你可以時,你總是使用枚舉。

現在,當您想要保留鍵值字典時,無論其性質如何,都應該使用“屬性”類型對象或有時使用“地圖”。

當您的常量集固定且預計不會經常更改時,請使用枚舉。 如果它經常更改,那么很難保持與以前版本的向后兼容性。 如果在客戶端服務器體系結構中都有一些Enum的不同版本。 例如

服務器: public enum Priority{ HIGH,LOW,MEDIUM,AVERAGE }

客戶: public enum Priority{ HIGH,LOW,MEDIUM}

假設服務器將Priority.AVERAGE發送給客戶端,則客戶端將拋出異常。

還有一件事要考慮 - 這些字符串會在不同的版本中發生變化嗎? 也許你有法語版,中文版,“高級版”? 如果是這樣,Properties / ResourceBundles等是可行的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM