在我的遺留代碼中,我有一個屬性/值對的概念。Java - 使用枚舉將字符串映射到接口的實現?
每個屬性/值在我的系統中都有一些任意的含義。所以,我的界面有方法getValue()和setValue()。其中每個都根據屬性在我的系統中的含義做了一些特定的業務邏輯。
這工作得很好,但我遇到了一些問題。
首先是我的映射往往是這個樣子:
if (name == "name1") return thisAttributeImplementation();
這是醜陋且容易搞砸了打字...
第二個問題是這些AttributeImplementations需要知道名字的屬性,但除非我將它作爲靜態成員提供,否則它們不會傳遞給構造函數,這兩者都很難看。
看起來好像枚舉是解決這兩個問題的好辦法,但是我在處理物流方面遇到了一些麻煩。爲了將字符串與對象相關聯,枚舉應該是什麼樣的?我應該如何遍歷枚舉來找到合適的呢?對象本身應該如何獲得與它們相關聯的字符串的知識?
'在我的遺留代碼中...每個屬性/值在我的系統中都有一些任意含義 - 是否意味着未來不可能改變? (例如添加新屬性,改變現有屬性的含義) –
@KevinK含義不會改變,因爲我們很快就會擺脫它們。 – Jeremy