我正在重构/审查 Java 应用程序
当我这样做时,我表明某些方法具有返回值,例如Object
、String
、Boolean
等,但在任何地方都没有使用返回值。只做了方法调用。
所以,我只是徘徊保持它们原样会导致应用程序的性能问题。
我应该将它们更改为无效还是保持原样?
我正在重构/审查 Java 应用程序
当我这样做时,我表明某些方法具有返回值,例如Object
、String
、Boolean
等,但在任何地方都没有使用返回值。只做了方法调用。
所以,我只是徘徊保持它们原样会导致应用程序的性能问题。
我应该将它们更改为无效还是保持原样?
更何况是一个性能打击,它是一种不恰当的方法构造。
如果方法的返回值在程序中没有用,那么就没有理由返回它,所以方法的返回类型应该是void
.
我认为保持返回类型不变会降低性能。
话虽如此,我认为您仍然应该删除它们。原因是它们本质上是死代码。在这些围绕返回类型的方法中可能潜伏着未知的错误——未知,因为它们没有被使用。如果有人决定有一天使用它们,这是一种潜在的危险。
此外,如果保留它们,维护负担会增加:每次有人接触其中一种方法时,她都必须(不必要地)考虑返回类型。
这基本上归结为 YAGNI。
在我看来,要么 API 使用不正确,要么设计不正确。
如果 API 设计正确,那么为什么 API 用户不使用方法返回类型?在这种情况下,用户一定是错误的。
另一方面,如果 API 设计不正确,那么在当前状态下使用它有什么意义?如果返回的信息是多余的,则修复 API 并使方法无效。
我认为与良好的 API 设计相比,性能方面的考虑并不重要。性能总是可以在以后改进,但 API 的更改非常困难且成本高昂。
如果未使用中的值,则不应返回值。改为使用void
。有时我会看到一些未使用的getter,但实际上它们已被 Web 框架使用。很难确定该方法是否未被使用。即使它被使用但返回值被忽略。不忽略返回值是没有限制的。