我有類似:獲取和設置鍵值屬性
Properties props = new Properties();
// This type of key-value property is in several code lines
props.put("mail.transport.protocol", settings.getSmtpProtocol());
在我的代碼,道具在幾個地方進行訪問。每次,我需要通過其字符串鍵訪問某個屬性。最近,我在其中一個關鍵字符串中做了一個小小的代碼更改,而且這個關鍵字不匹配造成了嚴重的後果。
假設在不久的將來它會增加大小和複雜度,在我的代碼庫中避免這類問題的正確設計應該是什麼?下面是我能想到的,但不知道什麼應該是最好的方式選擇:
代替書寫鍵裸串像「mail.transport.protocol」,「mail.smtp.host」,「 mail.smtp.port「在代碼中的幾個地方,讓他們存儲在一個類中?並且單元測試是否將相應的類變量添加到屬性中?
我應該重構道具到另一個類[只有我需要的屬性] alltogether,給定的道具已經在許多代碼行中獲取/設置了嗎?
有關鍵字符串,因爲它是在道具和獲得「鍵」作爲單位測試?但是,密鑰會以裸字符串的形式多次寫入。
我的設計實際上涉及保存屬性字符串和屬性,如你所說。謝謝,我的代碼現在看起來更乾淨。 –