我正在製作一個使用幾個常量的程序。起初,每當我需要使用一個常量時,我會將它定義爲單身人士和常量
//C#
private static readonly int MyConstant = xxx;
//Java
private static final int MyConstant = xxx;
在我需要它的類中。過了一段時間,我開始意識到一個班級需要一些常數。
在這個時候,我有3點,選項:
- 要在需要它的不同的類中定義它們。這導致重複。如果由於某種原因後來需要更換其中一個,我必須檢查所有課程,以便在任何地方替換它們。
- 定義一個靜態類/單例,所有常量都是公共的。
- 如果我在ClassA,ClassB和ClassC中需要一個常量X,我可以在ClassA中將它定義爲public,然後讓ClassB和ClassC引用它們。這個解決方案對我來說不太好,因爲它們之間已經有了更多的依賴關係。
我最終用第二個選項實現了我的代碼。 這是最好的選擇嗎?我覺得我可能錯過了其他更好的選擇。
我擔心在這裏使用單身人士的原因是,這個班級的用戶對這個班級使用單身人士並不清楚。也許我可以創建一個ConstantsClass,它包含所有需要的常量,然後將它傳遞給構造函數中需要它的類?
感謝
編輯:我使用這個多爲複雜的類型,而不是整數和字符串。至少在C#的情況下有所作爲,因爲這意味着我不能使用const
關鍵字。
如果是單身人士,他們當然不會被宣佈爲靜態的。如果在靜態類中,或者將它們放入每個需要它的類中,它們只會被聲明爲靜態。 – 2010-05-02 22:03:49
那麼這些值實際上不再是**常量**了。不,忘記單身主意。 – BalusC 2010-05-02 22:05:24