首页 > 解决方案 > 具有不同名称但都调用相同方法的方法

问题描述

我有幸维护了一位前雇员的代码。我看到了几种完全相同但名称不同的方法:

public DocBuilder comment(String co){
    //some code
    return this;
}
public DocBuilder cmnt(String co){
    return comment(co);
}
public DocBuilder c(String co){        
    return comment(co);
}
public DocBuilder reference(String name) {
    //some code
    return this;
}
public DocBuilder ref(String name) {
    return reference(name);
}
public DocBuilder r(String name) {
    return reference(name);
}

还有更多像属性,元素......每个至少有3个额外的“简化”方法。

我知道这与方法重载无关,因为参数都是相同的类型和长度。

我不明白的是它背后的意义。如果它们都调用相同的未短路方法,为什么我需要 3 个或更多具有不同缩写的方法?打字更快?几乎每个人都不使用代码完成吗?或者这是我还不知道的一些代码编写模式?

我可以在不破坏类逻辑的情况下删除几乎三分之二的行。这样的代码重复有什么好处?

标签: javamethodsoverloading

解决方案


关于奇怪代码的几点:

  • 意识到!有很多方法可以使用此代码(即反射、方面)。如果您确定没有任何影响,请执行此类清理。如果没有,更好的选择是添加一些评论和注释。
  • 使用可以帮助您识别代码异味的静态代码分析工具。例如SonarQube
  • 进行测试以确保满足业务需求。执行测试后,您可以检查代码覆盖率并删除冗余代码

推荐阅读