您是否更喜欢重复代码而不是实用程序类?

我们有一个 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的角度来看,你认为这个类和方法不好吗?为什么以及为什么不呢?


汪汪一只猫
浏览 131回答 1
1回答

慕村9548890

不,在多个地方重复(稍微复杂)代码绝对是不好的做法。DRY 原则说的是“不要重复自己”。这是需要记住的事情,您不想通过指示计算机多次覆盖此参数来重复自己。然而,可能有比只有一个方法的静态实用程序类更好的地方来放置它。如果您使用它的 4 个文件都扩展了某个类,则可以将其设置为受保护的静态方法。或者也许将它放在返回 JSON 字符串的类中。然而,将 JSON 作为字符串传递似乎有一种代码味道,特别是当您通过字符串操作来操作它时。使用 JSON 库(例如 Jackson 或 org.json)可能是个好主意。如果您使用 Jackson 的数据绑定功能(使用 Jackson 的最流行方式),您将创建一个具有实际 getter 和 setter 的 POJO,Jackson 负责将其转换为 JSON。就 org.json 而言,您使用一个与JSONObjecta 非常相似的类Map<String, Object>,并且可以像处理映射一样对其进行变异,并且可以使用单个方法将其与 String 相互转换。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java