亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您是否更喜歡重復代碼而不是實用程序類?

您是否更喜歡重復代碼而不是實用程序類?

汪汪一只貓 2023-08-23 11:39:31
我們有一個 Java 服務,可以處理大量用戶上傳的文件,以及為不同模型執行準備這些文件的任務。其中一個準備階段包括覆蓋 json 文件中的值。十分之四的任務應該執行此操作。我創建了一個靜態實用程序類,其中包含一個函數來覆蓋 json 文件中的值,例如public static class ParameterUtils {   public static String overrideParameter(String originalContent, String key, String newValue) {     //4 lines of code that overrides this value and return modified content.   }}然而,我的高級開發人員說這個實用程序類幾乎沒有提供任何價值,而我試圖保留 DRY 原則。最后我確實擺脫了這個實用程序類,現在覆蓋 json 文件中的值的 4 行代碼駐留在 4 個不同的文件中。從OOP的角度來看,你認為這個類和方法不好嗎?為什么以及為什么不呢?
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

不,在多個地方重復(稍微復雜)代碼絕對是不好的做法。

DRY 原則說的是“不要重復自己”。這是需要記住的事情,您不想通過指示計算機多次覆蓋此參數來重復自己。

然而,可能有比只有一個方法的靜態實用程序類更好的地方來放置它。

如果您使用它的 4 個文件都擴展了某個類,則可以將其設置為受保護的靜態方法?;蛘咭苍S將它放在返回 JSON 字符串的類中。

然而,將 JSON 作為字符串傳遞似乎有一種代碼味道,特別是當您通過字符串操作來操作它時。使用 JSON 庫(例如 Jackson 或 org.json)可能是個好主意。如果您使用 Jackson 的數據綁定功能(使用 Jackson 的最流行方式),您將創建一個具有實際 getter 和 setter 的 POJO,Jackson 負責將其轉換為 JSON。就 org.json 而言,您使用一個與JSONObjecta 非常相似的類Map<String, Object>,并且可以像處理映射一樣對其進行變異,并且可以使用單個方法將其與 String 相互轉換。


查看完整回答
反對 回復 2023-08-23
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號