【发布时间】:2019-09-25 03:38:37
【问题描述】:
我们有一个 Java 服务,它处理大量用户上传的文件,以及为不同模型准备这些文件以执行的任务。
一个这样的准备阶段包括覆盖 json 文件中的值。 10 个任务中有 4 个应该这样做。
我创建了一个静态实用程序类,其中包含一个函数来覆盖 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的角度来看这个类和方法不好?为什么?为什么不?
【问题讨论】:
-
这是一个基于意见的问题,可能会接近但我部分同意您的高级开发人员。我不认为它没有任何价值,但过多的重复代码会降低代码的可读性,因此应该避免,尤其是当有好的替代方案可用时。
-
这是主观的。但我会使用静态实用程序。也许,将其命名为非常特定于您的应用程序。我们的代码库中有这样的东西。
-
可能想要一个更完整的示例并发布到codereview.stackexchange.com。确实没有没有例外的规则,所以魔鬼在细节中。
-
几乎没有提供任何价值 - 直到需要更改。不,我不喜欢重复代码,但可能有比实用函数更好的方法。也许改为创建一个修饰符链
-
将一堆原始的
String操作方法填充到一个类中(或使用一些基类)当然是有价值的……与分布在整个应用程序中的相同代码的四个实例相比地方。询问他们的职位和薪水,因为他们可能不值得。
标签: java oop utility-method